用listview的时候,上面放了button会抢焦点,只要设置enabled为false就行,不过若是上面加了多选按钮,你就会发现哪怕设置enabled为false也不行,这就须要。在你的adapter的布局文件的最高根控件设置这个 android:descendantFocusability=blocksDescendants android
这时候就能够使用descendantFocusability来解决啦,API描述以下:
该属性是当一个为view获取焦点时,定义viewGroup和其子控件二者之间的关系。 布局
属性的值有三种: spa
beforeDescendants:viewgroup会优先其子类控件而获取到焦点 翻译
afterDescendants:viewgroup只有当其子类控件不须要获取焦点时才获取焦点 事件
blocksDescendants:viewgroup会覆盖子类控件而直接得到焦点 文档
一般咱们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就行了,至此listview点击的灵异事件告一段落。心得:遇到不会不懂的地方除了网上查询资料以外,也能够多多去尝试每种属性的做用,多阅读官方文档(我始终以为仍是读原文的比翻译的理解的会更好)。 it