关于listview中item无法获去焦点的问题
2014-08-13 15:35
267 查看
描述:在做删除短信功能时候,进入删除界面时候在每条短信后面显示一个checkbox,便于选择要删除的记录,需要的功能是点击item后checkbox会被选中,然后就碰到一个很奇怪的问题,解决了一半天才解决,问题如下:
问题一:listview中的item有的可以点击,有的不能点击,更有甚者有的item刚开始可以点击,隔一会之后又不能点击。
问题二:解决好了问题一之后,发现带有autolink的item依然无法获取焦点
问题一的解决:
在网上搜索了关于listview的子控件覆盖了item事件,网上有很多介绍,原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以
说是Button或者 Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。
这时候我们可以使用descendantFocusability属性解决
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了,至此listview点击的灵异事件告一段落。
问题二的解决:
由于在对应的item中的textview定义了android:autoLink="phone",通过阅读textview的源码在textview源码中,
,在定义了这个变量后,textview会被focus,所以导致我们还是无法获取item的焦点,
解决方案,在删除短信死后,直接对此textview调用setMovementMethod方法
如下 textview. setMovementMethod(null);发现此方案可行。解决
问题一:listview中的item有的可以点击,有的不能点击,更有甚者有的item刚开始可以点击,隔一会之后又不能点击。
问题二:解决好了问题一之后,发现带有autolink的item依然无法获取焦点
问题一的解决:
在网上搜索了关于listview的子控件覆盖了item事件,网上有很多介绍,原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以
说是Button或者 Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。
这时候我们可以使用descendantFocusability属性解决
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了,至此listview点击的灵异事件告一段落。
问题二的解决:
由于在对应的item中的textview定义了android:autoLink="phone",通过阅读textview的源码在textview源码中,
,在定义了这个变量后,textview会被focus,所以导致我们还是无法获取item的焦点,
解决方案,在删除短信死后,直接对此textview调用setMovementMethod方法
如下 textview. setMovementMethod(null);发现此方案可行。解决
相关文章推荐
- ListView Item 无法获得焦点问题
- ListView Item 无法获得焦点问题
- ListView Item 无法获得焦点问题
- Android--焦点问题-ListView中item及其子控件无法响应点击事件
- 关于ListView的item中包含Button或Checkbox时导致item无法点击问题
- ListView的item中含edittext时无法获取焦点的问题
- 安卓listview嵌套gridview时,造成listview的item无法获取焦点的问题
- android关于Listview中定义了子控件,子控件和item同时获取焦点的问题
- listView Item 焦点问题
- 关于datagridview单元格不切换焦点无法获得新输入数据的问题解决方法
- 关于ListView获取焦点的问题
- 关于ListView+CheckBox,Item超过一屏时数据乱序和不能全部选中的问题
- 关于GridView中Item和其子控件获取焦点的问题
- 关于listView的item失去焦点不能点击 Item中包含Button 导致抢占焦点
- 关于局部更新listview的问题(只更新某个item)
- 关于在Android中如何点击GridView或者ListView中item子项达到修改子项背景的问题解决方案
- 关于ListView获取焦点的问题
- 关于ListView中Item的高度问题
- 焦点在子Activity的listView时ActivityGroup无法响应Menu键的问题
- 关于ListView+CheckBox,Item超过一屏时数据乱序和不能全部选中的问题