android:descendantFocusability用法简析(listview的item点击无响应问题)
2015-10-29 12:54
330 查看
问题描述:
在开发中,我们会常遇到这样的问题,点击ListView中的Item项没有响应,无法获取焦点。原因多半是在Item项中包含了ImageButton、Button或者CheckBox等子控件,这些空间优先于你的Item获得焦点,从而导致点击Item没有响应。
解决方案:
这时,我们只需在Item布局文件中添加desendantFocusability属性就解决了。
该属性定义了一个View获取焦点时,其viewGroup和其子控件两者之间的关系。有三种关系:
1)beforeDesendants:表示ViewGroup会优先于子类空间而获得焦点。
2)afterDescendants:表示ViewGroup只有当其子控件不需要获取焦点时才获取焦点。
3)blocksDescendants:表示ViewGroup会覆盖子控件直接获取焦点。
通常情况下,我们会采取第三种方式。在Item布局文件中添加该属性。
在开发中,我们会常遇到这样的问题,点击ListView中的Item项没有响应,无法获取焦点。原因多半是在Item项中包含了ImageButton、Button或者CheckBox等子控件,这些空间优先于你的Item获得焦点,从而导致点击Item没有响应。
解决方案:
这时,我们只需在Item布局文件中添加desendantFocusability属性就解决了。
该属性定义了一个View获取焦点时,其viewGroup和其子控件两者之间的关系。有三种关系:
1)beforeDesendants:表示ViewGroup会优先于子类空间而获得焦点。
2)afterDescendants:表示ViewGroup只有当其子控件不需要获取焦点时才获取焦点。
3)blocksDescendants:表示ViewGroup会覆盖子控件直接获取焦点。
通常情况下,我们会采取第三种方式。在Item布局文件中添加该属性。
相关文章推荐
- android隐藏标题栏后影响样式的解决方案
- android studio 导入so文件出现的问题AND[android]复制 APK 许可证 (同一文件) 中的重复文件
- android模拟器root,avd root,emulator root教程
- Android编程实现的重力感应示例代码
- Android多媒体录制--MediaRecorder视频录制
- android布局属性详解
- Android学习之任务与返回栈
- android处理url中的特殊字符
- Android编程中图片特效处理方法小结
- Android四大组件之Service(服务)
- Android中进程级别分类
- Android中Activity常用功能设置小结(包括全屏、横竖屏等)
- android-仿iOS弹出框
- Android中Touch事件分发过程全解析
- Android图片转换器代码分享
- Android Studio 全面教程
- Android应用强制退出
- Android广播大全
- 使用Android S 4000 tudio 开发Android项目--结构简介
- Android Scroller 源码笔记