今天发现一个问题。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 导致抢占焦点相关推荐

  1. 解决listview点击item失效

    开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了 ...

  2. Android处理ListView中的Item中的Button按钮不能点击的问题

    问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...

  3. android 部分区域点击,Android编程实现ListView中item部分区域添加点击事件功能

    本文实例讲述了Android编程实现ListView中item部分区域添加点击事件功能.分享给大家供大家参考,具体如下: 需求如题目:Android listview中item部分区域添加点击事件,在 ...

  4. android listview item 展开动画,android的ListView点击item使item展开的做法的实现代码

    本文介绍了android的ListView点击item使item展开的做法的实现代码,分享给大家,具体如下: 效果图: 原理是点击item的时候,重新measure list的各个item的高度 li ...

  5. Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview

    效果 单个item样式 多个item样式 横向item 自定义viewpager--可开关切换动画 public class NoAnimationViewPager extends ViewPage ...

  6. listview 点击 item 字体变颜色

    item_color.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:a ...

  7. listview qt 选中内容_演练: 操作Qt应用中的QListView

    演练:操作Qt应用中的List 背景 需要针对Qt的ListView组件开发的列表应用进行操作和自动化测试.ListView通常用于含有大量可选项的窗口,比如文件列表.清单等等.以下我们对QListV ...

  8. ListView的长按事件和点击事件冲突的解决办法

    需求是这样的:listView中点击item 跳转到一个activity,长按item可以对这条item进行删除操作,在删除前会弹出dialog(确认删除对话框). 但是在开发过程中发现,当长按某个i ...

  9. Android listView中的button点击事件

    如果listView中的item有button控件,那么如何获取listView中的button控件?又如何在点击button时定位当前的item? 在listview中的listitem设置事件响应 ...

最新文章

  1. boost::timer
  2. 了解多线程中的yield
  3. 网站内链如何布局才能使蜘蛛更喜欢?
  4. 打开word或者office程序报错:Microsoft Visual C++ Runtime Library. Runtime Error!
  5. c语言迷宫算法设计,基于C语言的可连通迷宫算法设计及实现(毕业学术论文设计).doc...
  6. js学习总结----案例之多级菜单js版本
  7. 不同设备屏幕尺寸和DPR适配
  8. 北语20春oracle数据开发2,北语20春《Oracle数据库开发》作业3题目【标准答案】
  9. SpringMVC_02
  10. Castle 开发系列文章
  11. uni-app 中通过 async + await + Promise 实现 request 请求同步化
  12. 什么是串行接口和并行接口
  13. 2020年好用的BI应用排行榜
  14. 论文图表录 出现几个 错误标签未定义的简单解决方法
  15. QQ隐藏图原理与C#实现(含源文件)
  16. 为Windows右键新建菜单添加菜单项
  17. 操作系统安装和u盘认识
  18. M001: MongoDB Basics chapter 2 The MongoDB Query Language + Atlas学习记录
  19. 第二届智能制造与工业自动化国际研讨会(CIMIA 2022)
  20. 地理坐标系转投影坐标系

热门文章

  1. vivado烧录flash过程
  2. python积分管理系统_python实现每天自动签到领积分的示例代码
  3. 利用python爬虫与数据分析,打造最强玩法,轻松成为大神级玩家!
  4. python 用模型预测数据 代码_万字案例 | 用Python建立客户流失预测模型(含源数据+代码)...
  5. c语言退格的值是多少,在c语言里enter的键值是多少啊?
  6. Opencv进行人脸检测(改进)
  7. RNN情感分类问题实战
  8. HDU2066(SPFA算法)
  9. HDU1392(凸包求周长模版)
  10. HDU6964 I love counting (字典树+莫队)