问题描述:
在开发中,我们会常遇到这样的问题,点击ListView中的Item项没有响应,无法获取焦点。原因多半是在Item项中包含了ImageButton、Button或者CheckBox等子控件,这些空间优先于你的Item获得焦点,从而导致点击Item没有响应。
解决方案:
这时,我们只需在Item布局文件中添加desendantFocusability属性就解决了。
该属性定义了一个View获取焦点时,其viewGroup和其子控件两者之间的关系。有三种关系:
1)beforeDesendants:表示ViewGroup会优先于子类空间而获得焦点。
2)afterDescendants:表示ViewGroup只有当其子控件不需要获取焦点时才获取焦点。
3)blocksDescendants:表示ViewGroup会覆盖子控件直接获取焦点。
通常情况下,我们会采取第三种方式。在Item布局文件中添加该属性。