PullToRefreshListView点击无效果

Stella981
• 阅读 423

最近遇到一个很奇怪的问题,用PullToRefreshListView做列表,点击里面的子项没任何响应,还以为是PullToRefreshListView本身存在BUG,后来发现,即使用ListView也存在同样的问题!

最后终于找到了问题所在,原因是,在子项(item),原因是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。

知道原因了,那么问题就很好解决了,

方案一:

在整个大布局里面增加属性:android:descendantFocusability="blocksDescendants"

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

方案二:

在ImageButton、Button、CheckBox等会获取焦点的控件上增加:android:focusable="false"__

意思很简单,不获取焦点

点赞
收藏
评论区
推荐文章
Easter79 Easter79
2年前
springboot自定义类@Resource注入为null的问题
最近用springboot,在controller外面即自定义的类里报错java.lang.NullPointerExceptiondebug了下发现@Resource注入为null查了不少资料也没解决问题,最后终于找到一种解决办法,为了以后查找方便特意记录下来@ComponentpublicclassSaveStr
Wesley13 Wesley13
2年前
UGUI 自定义滚动选择列表 ListView
列表在游戏的UI中是非常常见的,例如选服页面,商城页面,奖励页面等等都会有列表的存在。文中我们将这些列表称为ListView(类似于fgui的GList),而列表中的每项称作Item。首先我们来分析下,我们的ListView需要实现哪些功能,以及如何实现功能解决思路可以通过滑动来显示ListView中的Item可以使用UGUI的Scrol
Stella981 Stella981
2年前
Android Recyclerview隐藏item的所在区域显示大空白问题的解决方案
最近搞了下Recyclerview,做了增加、删除item的功能。item上方有卡签!(https://oscimg.oschina.net/oscnet/0145e835209331d61e7a761ab97fdce5bac.png) 插个图片看下效果,点击底下的添加上去,同时,底下的item消失,这个用notifyItemInserted和n
Stella981 Stella981
2年前
ClickableSpan造成Listview的OnItemClickListener失效的解决办法
一、前提和解决做了个界面,在listview的itemview里要@,要超链接,要话题跳转等等等。用ClickableSpan实现了textview的点击跳转,之后发现listview的OnItemClickListener不响应,给textview的focusable设置为false,或者listview的descendantFocusabi
Wesley13 Wesley13
2年前
JS操作数组
1.  如果数组中存在item,则返回元素在数组中的位置,否则返回1functionindexOf(arr,item){if(Array.prototype.indexOf){//IE浏览器支不支持indexOfreturnarr.indexOf(item);}
Stella981 Stella981
2年前
OpenJDK11与Spring Cloud Finchley的不兼容问题与解决
本文的环境:OpenJDK11.0.4,SpringCloudfinchleySR4,SpringBoot2.0.3最近遇到了一个问题,在feign调用的时候,时常会出现这样一个奇怪的错误:2019100708:00:00.620ERRORxxx,e1ba4c7540954aa3,871b99c4576d42e3
Stella981 Stella981
2年前
QTreeWidget的Item点击事件
转载:cw123458945(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fblog.csdn.net%2Fcw123458945%2Farticle%2Fdetails%2F8160295)1!/usr/bin/envpython23i
Easter79 Easter79
2年前
SwipeRefreshLayout下拉刷新冲突解决
使用SwipeRefreshLayout,网上资料copy了一个OnScrollListener给ListView,结果当第一个item长度超过一屏,明明还没有到达列表顶部,Scroll事件就被拦截,列表无法滚动,同时启动了刷新。修正代码后,自定义的OnScrollListener如下:/ 由于Listview与下拉刷新的Scroll
Wesley13 Wesley13
2年前
Android开发之列表控件
一、基础知识:ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。先说说ListView的实现:1.准备ListView要显示的数据;2.使用一维或多维动态数组保存数据;3.构建适配器,简单地来说,适配器就是Item数组,动态数组有多少元素就生成多少个Item;4.把适配器添
Stella981 Stella981
2年前
Redis如何保证接口的幂等性?
在最近的一次业务升级中,遇到这样一个问题,我们设计了新的账户体系,需要在用户将应用升级之后将原来账户的数据手动的同步过来,就是需要用户自己去触发同步按钮进行同步,因为有些数据是用户存在自己本地的。那么在这个过程中就存在一个问题,要是因为网络的问题,用户重复点击了这个按钮怎么办?就算我们在客户端做了一些处理,在同步的过程中,不能再次点击,但是经过我最近