我listFragment
内有ViewPager
。问题是列表OnItemSelected
事件未被触发。我可以听到被点击的项目的反馈声音,但事件没有被执行。我已经尝试设置android:descendantFocusability="blocksDescendants"
,但它没有帮助。
在我以前使用RecyclerView逻辑(使用Android Studio模板完成)并且它正常工作之前,我想改变,因为它看起来很混乱。
我在activity_main.xml
<it.grsrl.rdd.redeye.Tools.CustomViewPager
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
这是fragment_list.xml
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listview_asset_list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
这是简短的item_list.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<RelativeLayout>
<ImageView />
<TextView/>
<TextView />
<TextView />
</RelativeLayout>
</FrameLayout>
我做了一个测试: 在我的自定义适配器中,我在getView方法中注册了一个OnClickListener,并且视图正在接收点击。那么,谁在吃我的点击事件?
任何帮助?
答案 0 :(得分:0)
我错过了ListFragment已经提供了一个可覆盖的onListItemClick
方法。我用onViewCreated()
这样设置了监听器:
getListView().setOnItemSelectedListener()
但最终这将无声地失败。
所以,我只需要覆盖onListItemClick
ListFragment
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Item itm = mListener.onAssetClick(l.getItemAtPosition)
}
}