文档章节

Android 开发中踩过的坑之十二: ListView中的焦点抢夺

r
 revfycd
发布于 2015/10/16 17:09
字数 256
阅读 557
收藏 5

当ListView设置了OnItemClickListener, Item项里的View设置了OnClickListener时, 

经常遇到某一个Listener失效的现象.

根本原因是焦点的问题, 

当item项目中某个View能够获取焦点时, 根据View焦点传递的规则会优先接受点击事件,

如此就会导致ListView的OnItemClickListener失效.

因为能够自动获取焦点的View有优先获取点击事件的权利,

OnItemClickListener是在Item的父节点, 所以它是最后一个处理点击事件的(虽然最先接收, 

但是先分发给子View, 子View处理完后, 最后自己处理). 如果子View处理并消化了点击事件, 

那么OnItemClickListener久失效了.


解决的方法:

1 你可以放弃OnItemClickListener, 只是用OnClickListener.

2 检查你的Item里, 时候有focusable=true 和 focusableInTouchMode=true的View. 

    如果有, 把他们都设置成false. 




© 著作权归作者所有

共有 人打赏支持
r
粉丝 10
博文 16
码字总数 6292
作品 0
海淀
私信 提问
加载中

评论(2)

zhangkehu
zhangkehu
焦点问题……我觉得说的很到位……
zhangkehu
zhangkehu
最近遇到过……不知道原因……学一下……有空验证一下
listview无法触发点击事件的问题

如果一个ListView item中,包含了其它可以出发点击事件的widget,例如button , 会发生ListView 无法触发 OnItemClickListener 中的onItemClick点击事件,原因是因为button抢夺了listview 的焦...

AlexZhuang
2012/04/24
0
1
程序媛Android学习路线指南

前言 看到一篇文章中提到“最近几年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺“,这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程...

浮生侃侃
2016/04/23
238
1
Android ListView使用BaseAdapter与ListView的优化

Adapter在Android应用程序中起着非常重要的作用,应用也非常广泛,它可看作是数据源和UI组件之间的桥梁,其中Adapter、数据和UI之间的关系,可以用下图表示: BaseAdapter就Android应用程序中...

风清扬-深圳
2015/11/18
0
0
ListView使用BaseAdapter与ListView的优化

在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作。也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点。...

蜗牛TT
2012/06/12
0
1
Android学习-列表视图ListView

一、简介: ListView,列表视图,直接继承了AbsListView,是一个以垂直方式在项目中显示View视图的列表。ListView的数据项,来自一个继承了ListAdapter接口的适配器。 二、新建一个包listvie...

YouChaoMin
11/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

tomcat shutdown.sh不能完合关掉tomcat进程的解决方法

tomcat shutdown.sh不能完合关掉tomcat进程的解决方法 2017年06月30日 17:18:16 redlevin 阅读数:5311 标签: tomcatjava 1、在tomcat/bin/shutdown.sh文件中增加一个参数 原来的 exec...

linjin200
3分钟前
0
0
动态代理

//业务类接口public interface ICar { String getName();} //业务类实现public class CarImpl implements ICar { @Override public String getName() { S......

stocket
12分钟前
0
0
dubbo架构相关知识学习

dubbo架构分为十层: Service:接口层,提供服务端以及客户端实现,类ServiceBean和ReferenceBean Config:配置层,ServiceConfig和ReferenceConfig,从dubbo.xsd中属性依赖如下,我们可以看出s...

zzx10
13分钟前
0
0
devops平台搭建

一份可以同时满足传统与互联网业务的Dev平台攻略

miaojiangmin
14分钟前
0
0
windows server 2019添加开机启动项

windows server 2012以上的版本(2016,2019)在开始菜单中找不到“启动”,如果写了个bat批处理文件,如何能开机启动呢?可以打开文件资源管理器,把下面的位置粘贴到地址栏后回车。将bat文...

gugudu
14分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部