问题记录-如何让Listview子控件在点击之后失去点击事件
来源:互联网 发布:为知笔记 archlinux 编辑:程序博客网 时间:2024/05/17 00:12
如何让Listview的子控件在点击之后失去焦点
1.出现的问题
2.尝试解决的方法
基本都失败了,部分失效原因还没找到,知道的可以告知下,感谢。。。。。
1.将父布局设置为不可点击
mLvAppLock.setEnabled(false);
2.将item的子控件设置为不可点击,后来发现当你把一个控件设置了点击事件之后,系统会自动将该控件设置为可点击的。
源代码:
public void setOnClickListener(@Nullable OnClickListener l) { if (!isClickable()) { setClickable(true); } getListenerInfo().mOnClickListener = l;}
另外,在adapter中设置点击事件,每一个控件都会有自己独立的点击事件,要对这些控件的点击事件进行屏蔽与开启,单个来有些麻烦。
3.设置listview的android:descendantFocusability属性
自己定义listview可能会发生点击每一个item的时候没有反应,无法获取焦点。原因多半是由于在我们自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点mLvAppLock.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
3.解决方案:
- 使用FrameLayout布局包裹一个listview,一个透明的占满父布局的Button
- 在刚开始的时候让这个Button隐藏,在点击了控件之后,想要让listview失去焦点,就让那个Button显示出来抢占焦点
- 当我们想让Listview继续获取焦点的时候,就让Button再次隐藏即可。
4.最后结果:监听动画,结束的时候隐藏遮盖层
0 0
- 问题记录-如何让Listview子控件在点击之后失去点击事件
- Button点击事件和LIstview子控件点击事件失效
- ListView 子控件点击事件对象优化
- 点击父控件让editext失去焦点
- Android中ListView实现子控件点击事件后ListView点击事件失效解决办法
- Android中ListView实现子控件点击事件后ListView点击事件失效解决办法
- EditText点击在ListView中失去焦点
- listview失去焦点不能点击问题
- ListView Item 点击事件 被重写BaseAdapter里面子控件抢去问题
- Android--焦点问题-ListView中item及其子控件无法响应点击事件
- Android listview子控件的的点击事件
- listView 触发长点击事件之后,还会执行点击事件的问题,
- Android中解决listview的item点击事件和子控件点击事件的冲突
- 屏蔽listview中的item点击事件,但不屏蔽item子控件的点击事件
- listview条目点击事件无效(或者需要同时监听条目点击事件和子控件的点击事件)
- ListView的点击事件与子控件点击冲突的解决
- ListView的点击事件与子控件点击冲突的解决
- Android:ListView的点击事件与子控件点击冲突的解决
- spring的事务隔离级别和传播行为
- 数据结构与算法练习-排序
- 第五次c++作业
- Adb 命令
- hadoop2.7.2集群搭建之虚拟机安装
- 问题记录-如何让Listview子控件在点击之后失去点击事件
- 自我检测题2
- 【工具】Sublime配置记录
- hdu_1253_胜利大逃亡(bfs+剪枝)
- android事件处理机制
- 大数据学习笔记·社会计算(4)
- 4K还有多远?谈谈新一代视频编码技术
- 快捷键操作和常用设置
- shell脚本--if判断(数字条件、字符串条件)