在使用Adapter的时候,总是会自定义Layout,在一个Item中,你可能会加入Button、ImageButton、TextView等子控件,那么这些子控件可能就会获取焦点,导致Item本身的点击无响应的bug。
解决方法:在Item的根布局中加上
android:descendantFocusability="blocksDescendants"
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup 会优先其子类控件而获取到焦点
afterDescendants:viewgroup 只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup 会覆盖子类控件而直接获得焦点
解决Adapter使用中Item点击无响应的焦点冲突问题

在使用Adapter时,自定义布局可能导致Item内的子控件获取焦点,进而影响Item本身点击功能。文章详细介绍了如何通过设置根布局的android:descendantFocusability属性来解决这一问题,确保Item的正确点击响应。
2万+

被折叠的 条评论
为什么被折叠?



