PullToRefreshListView点击无效果

最近遇到一个很奇怪的问题,用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"__

意思很简单,不获取焦点

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

springboot自定义类@Resource注入为null的问题

最近用springboot,在controller外面即自定义的类里报错java.lang.NullPointerExceptiondebug了下发现@Resource注入为null查了不少资料也没解决问题,最后终于找到一种解决办法,为了以后查找方便特意记录下来@ComponentpublicclassSaveStr

UGUI 自定义滚动选择列表 ListView

列表在游戏的UI中是非常常见的,例如选服页面,商城页面,奖励页面等等都会有列表的存在。文中我们将这些列表称为ListView(类似于fgui的GList),而列表中的每项称作Item。首先我们来分析下,我们的ListView需要实现哪些功能,以及如何实现功能解决思路可以通过滑动来显示ListView中的Item可以使用UGUI的Scrol

Android Recyclerview隐藏item的所在区域显示大空白问题的解决方案

最近搞了下Recyclerview,做了增加、删除item的功能。item上方有卡签!(https://oscimg.oschina.net/oscnet/0145e835209331d61e7a761ab97fdce5bac.png) 插个图片看下效果,点击底下的添加上去,同时,底下的item消失,这个用notifyItemInserted和n

JS操作数组

1.  如果数组中存在item,则返回元素在数组中的位置,否则返回1functionindexOf(arr,item){if(Array.prototype.indexOf){//IE浏览器支不支持indexOfreturnarr.indexOf(item);}

OpenJDK11与Spring Cloud Finchley的不兼容问题与解决

本文的环境:OpenJDK11.0.4,SpringCloudfinchleySR4,SpringBoot2.0.3最近遇到了一个问题,在feign调用的时候,时常会出现这样一个奇怪的错误:2019100708:00:00.620ERRORxxx,e1ba4c7540954aa3,871b99c4576d42e3

PullToRefreshListView点击无效果 - HelloWorld