Listview itemclick 不起作用
Posted
技术标签:
【中文标题】Listview itemclick 不起作用【英文标题】:Listview itemclick not work 【发布时间】:2013-12-11 01:51:01 【问题描述】:我的 ListView 中有一个 ListView 显示 ImageButton。
我将 focusalble "false" 和 focusableInTouchMode "false" 设置为 ImageButton。
我设置了 ListView.OnItemClickListner。当我运行我的项目时,它会显示我的 ListView。
但是当我点击 Listview 时它不起作用。
然后我在布局中删除 ImageButton 并在单击 ListView 时再次运行我的项目它工作
怎么了?
【问题讨论】:
如果没有代码来说明您的问题,我们如何为您提供帮助... 将图像按钮设置为 onclickable false、onfocusable false 并且还可以在触摸时聚焦为 false.. 同样在适配器中设置此属性。如果您需要实现单击图像按钮,请在适配器类中执行。 【参考方案1】:android:focusable="false"
android:focusableInTouchMode="false"
不适用于 ImageButton。
在您的布局 xml 中,将此属性添加到根布局
android:descendantFocusability="blocksDescendants"
它非常适合具有 ImageButton 的列表视图。
【讨论】:
啊……我一直忘记这个标签。又浪费了一个小时。我希望我可以多次投票。 一年后仍然相关! 我也有同样的问题。但我有 WebView 而不是 ImageButton。我使用了 android:descendantFocusability="blocksDescendants"。机器人不工作。如果有人遇到此问题,请帮助我。【参考方案2】:您不是唯一的受害者 :) 这种行为通常被 Android 开发人员视为错误看看他们的谈话中的 link。
要解决您的问题 - 只需在根布局中包含 android:descendantFocusability="blocksDescendants"
属性即可。
【讨论】:
【参考方案3】:如果您使用自定义Listview
,并且在自定义Listview
行项目列表中只有Textview
和Imageview
,则应删除android:inputType=""
。这会导致焦点问题。
【讨论】:
这对我有用,我已将 EDITTEXT 转换为 TEXTVIEW,因此它就在那里【参考方案4】:其实并没有错。你在做什么是好的。但我认为您在这里忘记了一个关键因素 ImageButton 有它自己的 OnClickListener。因此,当您将 ImageButton 嵌入到列表视图行时 ListView.OnItemClickListner 不起作用,因为 ImageButton 调用了单击/触摸,这是因为 ListView 没有获得您的单击/触摸事件。 查看此链接:How to fire onListItemClick in Listactivity with buttons in list?
【讨论】:
【参考方案5】:我猜你正在使用自定义列表视图项目只是尝试设置
为您的custom_list_view_item.xml
中的所有视图设置focusable
"false" 和focusableInTouchMode
"false"
如果您在适配器中对图像按钮使用单击侦听器,请不要担心您的图像按钮,它也可以正常工作。只需对 custom_list_view_item.xml 中的所有视图执行 focusable
"false" 和 focusableInTouchMode
"false"
【讨论】:
【参考方案6】:可能你已经为适配器类中的图像按钮编写了 onclick 监听器
示例:
imageButton.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
);
如果您为 listItem 设置 onclick 监听器。它将自动消耗操作输入 所以列表项可能不会被点击。
【讨论】:
以上是关于Listview itemclick 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
ExpansionTile 内的 ListView 不起作用
listView.setOnItemClickListener() 在 Android 中不起作用