android_ListView条目点击没有效果的解决方案
2016-04-26 18:07
549 查看
ListView条目点击没有效果的解决方案
分析无法响应的原因
首先明白为什么点击没有响应?点击我们就联想到点击事件,一个点击事件能响应在于ACTION_UP事件会被响应,如此说来item点击没有响应我猜测就是ACTION_UP没有被响应到,于是我们去翻翻ListView源码看看:ListView相应Action_up事件的源码private void onTouchUp(MotionEvent ev) { switch (mTouchMode) { ... if (inList && !child.hasFocusable()) { if (mPerformClick == null) { mPerformClick = new PerformClick(); } } ... } }
结论:由上面代码可以看到若是孩子具有焦点,那么item是不会相应点击事件的,所以才会出现这种点击响应的效果。
解决方案一:
给具有焦点的控件设置focusable=false,这样ListView的孩子就布局布局有焦点的孩子了,因此就可以相应点击事件了。解决方案二:
给item的根布局设置android:descendantFocusability属性,下面来看看这几个属性的解释:该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点,我们一般选择blocksDescendants属性。
相关文章推荐
- 完美实现Android ListView中的TextView的跑马灯效果
- android上改变listView的选中颜色
- Delphi7中Listview的常用功能汇总
- Delphi控件ListView的属性及使用方法详解
- android中ListView数据刷新时的同步方法
- Android提高之ListView实现自适应表格的方法
- Android中实现水平滑动(横向滑动)ListView示例
- C#实现ListView选中项向上或向下移动的方法
- Listview加载的性能优化是如何实现的
- C#实现listview Group收缩扩展的方法
- C# listview添加combobox到单元格的实现代码
- ListView 百分比进度条(delphi版)
- Android listview多视图嵌套多视图
- ListView Adapter优化 实例
- Android用ListView显示SDCard文件列表的小例子
- Adapter实现ListView带多选框等状态的自定义控件的注意事项
- asp.net ListView 数据绑定
- Android之ScrollView嵌套ListView和GridView冲突的解决方法
- android ListView和ProgressBar(进度条控件)的使用方法
- Android实现ListView异步加载图片的方法