Android中ListView或者GridView的Item和Item中控件的事件冲突

原创 2016年08月30日 14:23:29

在gridview或者listView中,我们经常会给他们的item中的控件也添加事件监听。就会发生item的点击事件和item中的控件点击事件冲突,只能实现一个的情况。

这种情况,解释一下可能的原因。

有可能是item中子控件的优先级会高于父控件,所以焦点优先给予子控件,导致父控件获取不到焦点。那么针对的解决办法可以有如下两方面的思路:


1.给父控件的获取焦点优先级提高一下呗:


解释一下descendantFocusability的属性有三种:

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

而我们需要用到的就是覆盖子类控件直接获取焦点。这个大家理解尝试。

在我们的item的跟布局中加入下面这一行代码就解决我们的焦点冲突问题。

android:descendantFocusability="blocksDescendants"

2.将子控件的focusable修改一下:

如下,在我们的需要获取焦点的子控件加如下代码:

android:focusable="false"

这样,我们的item和item中的控件的事件就不冲突啦。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

怎么获取ListView和GridView适配器中item上TextView和ListView控件的值

CharSequence num = ((TextView) mListView.getChildAt(i).findViewById(R.id.item_editgood_num)).getText...

listview嵌套gridview,并实现grid元素部分显示以及点击展开与折叠

有时我们需要用GridView显示目录列表,有时甚至是二级的,即listview每一个item里面又各自嵌入一个gridview,但是当二级目录(数据条目)的数量过多时,界面会比较臃肿,这时我们就想要...
  • duguju
  • duguju
  • 2015-10-31 23:08
  • 2881

Android:ListView中嵌入GridView,处理点击事件的冲突

【问题】当GridView嵌入ListView后,始终响应的是GridView的点击事件,我需要的是获取到ListView的点击事件!   在使用ListView的时候,我们使用adapter中画我...

ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决办法

fragment中添加了button和checkbox这些控件,此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。 这时候就可以使用descendant...

android开发 gridview的item与子控件焦点问题

最近项目中用到了gridview,顺带对gridview的item与子控件焦点问题进行小小的研究比较下; 项目需求:在simphone手持把枪上通过方向按钮实现gridview的菜单选择; 实现方...

Android.GridView中item事件OnItemClick

Android.GridView事件监听 转自:http://kandy0619.blog.163.com/blog/static/643443452010021101343213/ ...

Android中RecyclerView的item中控件的点击事件添加删除一行、上移下移一行的代码实现

编写不易,如有转载,请声明出处: 梦回河口: Demo展示图片布局代码  注:为了显示水波纹效果,minSdkVersion设置为21。代码没有适配5.0以下,如果要适配5.0以下,可参考:Andro...

解决ListView的item监听事件个子控件监听事件冲突问题

当我们自定义ListView的Adaper的时候,给我们item布局添加监听事件,然后我再在去在Activity中给我们的ListView添加AdapterView.OnItemClickListen...
  • Reoger
  • Reoger
  • 2016-04-25 21:21
  • 3334

android ListView显示多个类型item 和 item中控件抢夺焦点解决办法

在android  ListView item条目中 如果添加有ImageView,Button 等会强行获取获取焦点 导致 ListView 本身的监听失效 下面是总结的几个方法 来进行避免此类问题...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)