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的点击事件与控件点击事件冲突的解决

listview中item的点击事件与控件点击事件冲突的解决
  • m00123456789
  • m00123456789
  • 2016年10月25日 15:31
  • 1537

GridView的点击事件冲突解决

在开发的时候,经常可能遇到ListView或GridView控件点击事件与Item点击事件冲突的问题。原因是Item布局中的button或ImageButton强制获取了item的焦点,解决方式之一是...
  • true100
  • true100
  • 2015年07月08日 10:42
  • 5826

[Android界面] GridView 中含有两个以上的Button时Item点击事件没有效果

开发中很常见的一个问题,项目中的listview或者GridView 不仅仅是简单的文字,常常需要自己定义iem,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,...
  • u010402982
  • u010402982
  • 2014年08月22日 11:34
  • 1368

GridView中item点击事件思考

GridView中item的布局有:ImagView、TextView 效果: GridView中点击每个item进行对应地图刷新 GridView中长按每个item进入使该item进入Touch模式...
  • csu54zzg
  • csu54zzg
  • 2015年03月08日 21:20
  • 2435

关于android下面girdview item同时实现onclick和ontouch的一点心得.

今天研究了一天的girdview item同时实现onclick和ontouch事件. 源于一个bug.这个bug的是这样. 下面是一个girdview...
  • micaixiaoduanku
  • micaixiaoduanku
  • 2014年06月12日 21:33
  • 3165

ListView 或GridView不能响应itemclick事件的解决方法

主要内容转自他人博文,稍作修改
  • aknew123
  • aknew123
  • 2015年09月27日 21:27
  • 3436

关于为gridView中的Item设置点击事件

首先在Activity中定义GridView,以及需要用到的图片及图片对应的文字,还有适配器 private GridView gridView; private List> dataList; pr...
  • z1042511771
  • z1042511771
  • 2016年11月30日 22:53
  • 5014

GridView点击事件无效的原因

一,今天遇到一个需求,先附图: 在这里用到gridview+adapter去实现, 1.点击添加,添加新的一天,如13天。 2.点击其他的天数,选中这一天并显示红色。...
  • hustwbyuanyi
  • hustwbyuanyi
  • 2016年05月27日 16:31
  • 5836

在ListView嵌套GridView中出现的点击事件冲突的处理以及gridview显示不全的问题

写这篇博文也是出于偶然看到自己很久以前写的一堆“烂码”,目的是为了实现一个ListView中能够嵌入GridView的功能,为了展示图文的一个Item,这是一个很普通的功能,但在那时候什么都不懂的我还...
  • u011251014
  • u011251014
  • 2015年11月10日 20:48
  • 1259

Android 实现ListView/GridView等中Item被单击后背景色保持高亮

今天做一个商品查询,选择商品之后,以GridView显示属性和品种,点击选中之后保持高亮提示用户该项已被选择 正好碰到该篇博客,以下是转载内容 今天为了解决一个需求,就是我有一个slidingDra...
  • xinjianwuhen1991
  • xinjianwuhen1991
  • 2015年10月07日 21:53
  • 1306
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中ListView或者GridView的Item和Item中控件的事件冲突
举报原因:
原因补充:

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