关于listView的item失去焦点不能点击 Item中包含Button 导致抢占焦点
今天发现一个问题。listView的item点击以后进入到下一个页面,下个页面有个返回按钮,直接返回回去以后点击事件不能触发,滑动或者重新打开这个listView,就可以达到原来的效果。后来发现是因为所在的整个页面失去焦点。
解决的基本思想就是返回的时候让view重新的获取焦点。android自带了一个方法requestFocusFromTouch。在返回的时候用对应的view来调用这个方法即可。如果是在Activity中的话则写在onresume()中就可以了。
还有一总情况,如果listView的adapter中不只是简单的文字显示,比如说还有ImageButton,那么ImageButton会抢掉listView的item的焦点。导致item不能获取到焦点。因为自定义ListViewItem有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了,也就会响应onItemClickListener中的onItemClick()方法,然而将ListView的Item Layout的子控件focusable属性设置为false有点繁琐,我们可以通过对Item Layout的根控件设置其android:descendantFocusability=”blocksDescendants”即可,这样Item Layout就屏蔽了所有子控件获取Focus的权限,不需要针对Item Layout中的每一个控件重新设置focusable属性了,如此就可以顺利的响应onItemClickListener中的onItemClick()方法了。
所以总结一下,最简单的解决方法就是在ListView的Item选项的布局文件根上加上android:descendantFocusability=”blocksDescendants”就可以了。
关于listView的item失去焦点不能点击 Item中包含Button 导致抢占焦点相关推荐
- 解决listview点击item失效
开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了 ...
- Android处理ListView中的Item中的Button按钮不能点击的问题
问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...
- android 部分区域点击,Android编程实现ListView中item部分区域添加点击事件功能
本文实例讲述了Android编程实现ListView中item部分区域添加点击事件功能.分享给大家供大家参考,具体如下: 需求如题目:Android listview中item部分区域添加点击事件,在 ...
- android listview item 展开动画,android的ListView点击item使item展开的做法的实现代码
本文介绍了android的ListView点击item使item展开的做法的实现代码,分享给大家,具体如下: 效果图: 原理是点击item的时候,重新measure list的各个item的高度 li ...
- Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview
效果 单个item样式 多个item样式 横向item 自定义viewpager--可开关切换动画 public class NoAnimationViewPager extends ViewPage ...
- listview 点击 item 字体变颜色
item_color.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:a ...
- listview qt 选中内容_演练: 操作Qt应用中的QListView
演练:操作Qt应用中的List 背景 需要针对Qt的ListView组件开发的列表应用进行操作和自动化测试.ListView通常用于含有大量可选项的窗口,比如文件列表.清单等等.以下我们对QListV ...
- ListView的长按事件和点击事件冲突的解决办法
需求是这样的:listView中点击item 跳转到一个activity,长按item可以对这条item进行删除操作,在删除前会弹出dialog(确认删除对话框). 但是在开发过程中发现,当长按某个i ...
- Android listView中的button点击事件
如果listView中的item有button控件,那么如何获取listView中的button控件?又如何在点击button时定位当前的item? 在listview中的listitem设置事件响应 ...
最新文章
- boost::timer
- 了解多线程中的yield
- 网站内链如何布局才能使蜘蛛更喜欢?
- 打开word或者office程序报错:Microsoft Visual C++ Runtime Library. Runtime Error!
- c语言迷宫算法设计,基于C语言的可连通迷宫算法设计及实现(毕业学术论文设计).doc...
- js学习总结----案例之多级菜单js版本
- 不同设备屏幕尺寸和DPR适配
- 北语20春oracle数据开发2,北语20春《Oracle数据库开发》作业3题目【标准答案】
- SpringMVC_02
- Castle 开发系列文章
- uni-app 中通过 async + await + Promise 实现 request 请求同步化
- 什么是串行接口和并行接口
- 2020年好用的BI应用排行榜
- 论文图表录 出现几个 错误标签未定义的简单解决方法
- QQ隐藏图原理与C#实现(含源文件)
- 为Windows右键新建菜单添加菜单项
- 操作系统安装和u盘认识
- M001: MongoDB Basics chapter 2 The MongoDB Query Language + Atlas学习记录
- 第二届智能制造与工业自动化国际研讨会(CIMIA 2022)
- 地理坐标系转投影坐标系
热门文章
- vivado烧录flash过程
- python积分管理系统_python实现每天自动签到领积分的示例代码
- 利用python爬虫与数据分析,打造最强玩法,轻松成为大神级玩家!
- python 用模型预测数据 代码_万字案例 | 用Python建立客户流失预测模型(含源数据+代码)...
- c语言退格的值是多少,在c语言里enter的键值是多少啊?
- Opencv进行人脸检测(改进)
- RNN情感分类问题实战
- HDU2066(SPFA算法)
- HDU1392(凸包求周长模版)
- HDU6964 I love counting (字典树+莫队)