我有一个ListView,上面有一些元素。每行都有一个TextView和一个Button。它看起来像这样:
|连续的一些文字(按钮)|
现在,当我点击此文本时,没有任何反应。根本没有人调用任何功能。但是,当我点击按钮时,我可以处理该事件。我使用onListItemClick()
那么我应该使用什么代替TextView来处理事件(当我点击文本时)?
在此之前,我每行只有一个TextView,当我点击一行时,一切正常(onListItemClick()被调用)。
提前谢谢!
答案 0 :(得分:9)
将属性focusable="false"
添加到TextView
::
<TextView
...
...
android:focusable="false"
/>
并且您可能需要对ListView中的其他元素执行相同的操作。
以编程方式,我们可以使用方法setFocusable():
v.findViewById(R.id.my_button).setFocusable(false);
setFocusable():将此设置为false也会确保这一点 视图在触摸模式下无法聚焦。
答案 1 :(得分:6)
挑战是ListView和按钮争夺焦点。通常,两者中只有一个可以获得焦点(因此可以点击)。在你的事业中,按钮是可聚焦的按钮。
要调整此项,您可以使用ListView的descendantFocusability属性。
在ListView项目中有一个按钮,你想要完成什么?当你点击按钮时,你是否希望发生不同的事情?当你点击按钮外的listview项目时,你会想要吗?