android ListView中button点击事件盖掉onItemClick解决办法
ListView
1.在android应用当中,很多时候都要用到listView,但如果ListView当中添加Button后,ListView 自己的
1 public void onItemClick(AdapterView<?> parent, View view, int position, 2 long id) { 3 4 }
就不能执行了,这里就涉及到一个焦点的问题.
在适配器嗦加载的XML文件中
把< RelativeLayout>或<linearLayout>中
android:descendantFocusability= "blocksDescendants"
和在ListView中需要点击的按钮<Button>中
android:focusable = "false"
这两项的设置很关键,如果不设置,将导致ListView的ItemClick事件将无法触发,该事件被ImageButton的click事件屏蔽了。
2.对上面两个属性进行一下解释
android:descendantFocusability ,官方API给出的解释是:
他就是用于定义ViewGroup和子控件焦点的关系
android:descendantFocusability = "beforeDescendants"
viewgroup会优先其子类控件而获取到焦点
android:descendantFocusability = "afterDescendants"
viewgroup只有当其子类控件不需要获取焦点时才获取焦点
android:descendantFocusability = "blocksDescendants"
viewgroup会覆盖子类控件而直接获得焦点
而我们用得最多的就是第三个了。
android:focusable 这个就很简单了就是设置是否获得焦点