列表视图itemclick不工作
-
我在我的ListView显示ImageButton中有一个ListView。
-
我为ImageButton设置了focusalble“false”和focusableInTouchMode“false”。
-
我设置ListView.OnItemClickListner。 当我运行我的项目这是显示我的ListView。
-
但是当我点击Listview它不工作。
-
然后我删除布局中的ImageButton并再次运行我的项目,当我点击ListView它的工作
-
什么错?
android:focusable="false" android:focusableInTouchMode="false"
不适用于ImageButton。
在您的布局xml中,将此属性添加到根布局
android:descendantFocusability="blocksDescendants"
它适用于具有ImageButton的列表视图。
你不是唯一的受害者:) 这种行为通常被认为是Android开发者的一个错误。看看他们对话的这个链接 。
为了解决您的问题,只需在您的根布局中包含android:descendantFocusability="blocksDescendants"
属性即可。
其实没有什么是错的 你在做什么是好的。 但我想你忘了一个关键因素ImageButton有它自己的OnClickListener。 所以当你将ImageButtonembedded到ListView行中时ListView.OnItemClickListner不起作用,因为Click / touch是由ImageButton调用的,这是因为ListView没有得到你的点击/触摸事件。 检查这个链接: 如何在listactivity列表中buttonListListItemClick?
如果您使用自定义列表Imageview
,并且在自定义列表Textview
行项目列表中,如果只有Textview
和Imageview
,则应删除android:inputType=""
。 它引起了可聚焦性的问题。
可能是你已经写了适配器类中的图像buttononclick监听器
例如:
imageButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } });
如果为listItem设置了onclick监听器,它将自动消耗操作input,因此列表项不会被点击。
我猜你正在使用自定义列表视图项目只是尝试设置为您的custom_list_view_item.xml
所有视图设置focusable
“false”和custom_list_view_item.xml
“假”如果您使用图像的点击侦听器不担心图像button适配器中的button,它也将正常工作。 只需对您的custom_list_view_item.xml中的所有视图执行focusable“false”和focusableInTouchMode“false”