Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案

如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView
的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为
false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了

我们可以通过对Item
Layout的根控件设置其android:descendantFocusability=”blocksDescendants”即可,这样Item
Layout就屏蔽了所有子控件获取Focus的权限,不需要针对Item
Layout中的每一个控件重新设置focusable属性了,如此就可以顺利的响应onItemClickListener中的
onItemClick()方法了。

还有一种情况,如果Item
的根 Layout设置了 android:clickable="true" 
也没法响应onItemClick方法

Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案,布布扣,bubuko.com

时间: 2024-08-25 11:48:20

Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案的相关文章

Android ListView不响应OnItemClickListener解决办法

有时候,当ListView中的每一个item是自定义的View时,有可能会导致ListView的OnItemClickListener的listener无法调用,请看如下情况: 如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而 ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的 focusable属性设置为false,这样的话ListVie

通过自定义ListView解决在scrollView中的嵌套问题

个人觉得通过自定义listView控件比较简单,可以解决在scrollView中嵌套listview的问题. 代码如下: <span style="font-family:SimSun;font-size:14px;">public class MyListView extends ListView { public MyListView(Context context) { super(context); } public MyListView(Context conte

Android复杂自定义Listview实现

在Android中实现Listview对新人来说比较难以理解,本人看了若干文章后觉得可以使用以下思路来让新人更好理解(同时也做好记录,免得自己以后忘记). 可参考博客:http://cinderella7.blog.51cto.com/7607653/1281696  (这里用MVC的思想去理解Listview,个人认为还是不错的) http://blog.csdn.net/jueblog/article/details/11857281   (一个完整的实现) ----------------

Java中生成符合http响应头中的Date格式的字符串

在http header中,Date头域表示消息发送的时间,时间的描述格式由rfc822(电子邮件的标准格式)定义.例如,Date: Sat, 05 Jul 2014 12:53:36 GMT.具体格式说明如下: 标准格式:DAY, DD MMM YYYY HH:MM:SS GMT,其中 DAY: 由三个英文字母指代的星期(Sun, Mon, Tue, Wed, Thu, Fri, Sat). DD: 日(such as 01 for the first day of the month). M

Android中自定义ListView实现上拉加载更多和下拉刷新

ListView是Android中一个功能强大而且很常用的控件,在很多App中都有ListView的下拉刷新数据和上拉加载更多这个功能.这里我就简单记录一下实现过程. 实现这个功能的方法不止一个,GitHub上有一些开源库可以使用,但是本着学习的精神,我做的是使用自定义ListView实现这个功能. 思路:谷歌提供的ListView是不能提供下拉刷新和下拉加载的,所以我们就需要重写ListView.在ListView的头部和尾部加上我们的布局文件(progressbar). 先说上拉加载更多实现

ListView中各组件点击事件冲突,ListView不响应OnItemClickListener事件

参考博文:https://xjaphx.wordpress.com/2011/07/14/listview-doesnt-respond-to-onitemclicklistener/ #1,listview item中包含checkbox,需要改变checkbox的属性设置: android:focusable="false" android:focusableInTouchMode="false" #2,包含ImageButton,在代码中设置:在布局文件中设置

关于 Android 中ScrollView中带有ListView 或者是Gridview的子视图的问题解决方案

问题如下描述: 关于 Android 中ScrollView中带有ListView 或者是Gridview的子视图的问题,在第一次加载的时候,会使得ScrollView 不在顶端.会往下移动,这个是因为其子视图抢占了焦点. 解决这样的问题,只要重写两个方法 : pasting 这样的话,第一次加载的时候就将ScrollView牢牢的锁在了第一.当用户交互的时候,就可以恢复正常.

【Android】自定义listview快速滚动条

http://blog.csdn.net/xyang81/article/details/17680333 在eoe上看到有个贴子通过反射,动态修改FastScroller对象的mThumbDrawable属性来改变快速滑动块的图标,这也不为于一种实现方式,但反射的效率较低.下面将介绍使用Style的方式来自定义图标. 从FastScroller类的init方法中可以得知,mThumbDrawable是通过获取当前Activity主题的android.R.attr.fastScrollThumb

android 安卓自定义listview实现下拉刷新

[1].重写listView public class MyListView extends ListView implements OnScrollListener {          private final static int RELEASE_To_REFRESH = 0;// 下拉过程的状态值       private final static int PULL_To_REFRESH = 1; // 从下拉返回到不刷新的状态值       private final static