Android 中ListView的Item点击事件失效的快速解决方法

 更新时间:2016年09月15日 09:52:37   作者:杨道龙  
这篇文章主要介绍了Android 中ListView的Item点击事件失效的快速解决方法的相关资料,需要的朋友可以参考下

在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布局和自定义adapter了,一般是继承于BaseAdapter,示例代码见下方。写ListView的点击事件时OnItemClickListener,onItemClick方法没有执行,导致ListView中Item条目点击事件失效,而Item中的View点击事件可以在getView方法中进行处理。导致整个Item点击失效的原因多半是由于在【你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件)】,此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。

这时候就可以使用descendantFocusability来解决,其中descendantFocusability对应的属性有3个

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了
我遇到的情况时item布局有一个ImageButton按钮,因为这个组件抢事件能力强,根button差不多;因此运行后,listviewitem点击失效。使用上边方式解决问题;当然也可以改变imagebutton为imageview也可以解决这个问题。

相关文章

  • Adnroid 自定义ProgressDialog加载中(加载圈)

    Adnroid 自定义ProgressDialog加载中(加载圈)

    这篇文章主要介绍了Adnroid 自定义ProgressDialog加载中(加载圈),需要的朋友可以参考下
    2017-06-06
  • Android冷启动优化的3个小案例分享

    Android冷启动优化的3个小案例分享

    为了提高App的冷启动耗时,除了在常规的业务侧进行耗时代码优化之外,为了进一步缩短启动耗时,需要在纯技术测做一些优化探索,本期我们从类预加载、Retrofit 、ARouter方面进行了进一步的优化,感兴趣的同学跟着小编一起来看看吧
    2023-07-07
  • 浅谈Android Studio 4.1 更新内容

    浅谈Android Studio 4.1 更新内容

    这篇文章主要介绍了浅谈Android Studio 4.1 更新内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 解决android studio 打包发现generate signed apk 消失不见问题

    解决android studio 打包发现generate signed apk 消失不见问题

    这篇文章主要介绍了解决android studio 打包发现generate signed apk 消失不见问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Android编程实现在Bitmap上涂鸦效果

    Android编程实现在Bitmap上涂鸦效果

    这篇文章主要介绍了Android编程实现在Bitmap上涂鸦效果的方法,涉及Android界面布局,事件响应及Bitmap操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • Android画画板的制作方法

    Android画画板的制作方法

    这篇文章主要为大家详细介绍了Android画画板的制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Android编程实现文件浏览功能的方法【类似于FileDialog的功能】

    Android编程实现文件浏览功能的方法【类似于FileDialog的功能】

    这篇文章主要介绍了Android编程实现文件浏览功能的方法,可实现类似于FileDialog的功能,涉及Android针对文件与目录操作的相关技巧,需要的朋友可以参考下
    2016-11-11
  • Android 如何获取传感器的数据方法详解

    Android 如何获取传感器的数据方法详解

    这篇文章主要介绍了Android 如何获取传感器的数据,传感器 Sensor 是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求
    2022-07-07
  • Jetpack Compose之选择器使用实例讲解

    Jetpack Compose之选择器使用实例讲解

    这篇文章主要介绍了Jetpack Compose之选择器使用,选择器主要是指Checkbox复选框,单选开关Switch,滑杆组件Slider等用于提供给用户选择一些值和程序交互的组件,比如像复选框Checkbox,可以让用户选择一个或者多个选项
    2023-04-04
  • Android json解析及简单例子

    Android json解析及简单例子

    这篇文章主要为大家详细介绍了Android json解析及简单例子,具有一定的参考价值,感兴趣的朋友可以参考一下
    2016-06-06

最新评论