phil
phil

Reputation: 1446

Android viewpager fragment button setOnClickListener not working

I have a viewpager with a fragment that contains a button. Here is the onCreateView of the fragment.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment, container, false);
    refreshButton = (Button) v.findViewById(R.id.refreshButton);

    refreshButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            refreshButton_Click();
        }
    });

    return v;
}

I can verify that refreshButton_Click is not being called when I click on the refreshButton (which is clearly visible). I am guessing that the fragment just isn't getting focus or that it isn't allowing child elements to have focus.

Here is the layout for the fragment:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.me.philip.firehydrant.FeedFragment"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#ffededed">

    <TextView
        android:id="@+id/headerTextView"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="header"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:layout_margin="2dp"
        android:text="refresh"
        android:id="@+id/refreshButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusable="true"/>
</LinearLayout>

<ExpandableListView
    android:id="@+id/postList"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"></ExpandableListView>

</LinearLayout>

EDIT: I forgot to mention: the button doesn't do the usual blue lighting up that buttons do when they are clicked, so I'm pretty sure it isn't the setOnClickListener that isn't working, but rather that the button is unable to get focus

Upvotes: 0

Views: 764

Answers (1)

phil
phil

Reputation: 1446

Well, I believe I solved it. I had the ViewPager nested inside a DrawerLayout. I guess the similarity of their swiping gestures make them unworkable together.

Upvotes: 1

Related Questions