2014-11-05 5 views
0

У меня есть viewpager с фрагментом, который содержит кнопку. Здесь находится onCreateView фрагмента.Кнопка фрагмента Android viewpager setOnClickListener не работает

@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; 
} 

я могу проверить, что refreshButton_Click не вызывается, когда я нажимаю на refreshButton (который хорошо виден). Я предполагаю, что фрагмент просто не фокусируется или не позволяет дочерним элементам сосредоточиться.

Вот макет для фрагмента:

<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: Я забыл упомянуть: кнопка не делает обычное синее освещения вверх, что кнопки, когда они щелкают, так что я очень уверен, что это не работает setOnClickListener, а скорее, что кнопка не может получить фокус.

+0

Откуда вы знаете, что это не называется? – Blackbelt

+0

Я установил точку останова, и он не попал. Кроме того, код в методе ничего не сделал. – phil

+0

Можете ли вы разместить макет? – Blackbelt

ответ

1

Ну, я считаю, что решил. У меня был ViewPager, вложенный внутри DrawerLayout. Я думаю, что сходство их жестов делает их неработоспособными вместе.

Смежные вопросы