Android ListView的item点击没有反应的解决方法

释放双眼,带上耳机,听听看~!

如果stu_item.xml里面包括button或者checkbox等控件,默认情况下list的item会失去焦点,导致无法响应item的事件,最常用的解决办法是在stu_item.xml的布局文件中设置descendantFocusability属性。

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

属性的值有三种:

beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:descendantFocusability="blocksDescendants"><!--添加这个属性-->
<ImageView
android:id="@+id/img_head"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="https://js.aizhan.com/develop/android/@drawable/dog2"
android:scaleType="centerCrop"
android:layout_marginRight="5dp"/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/tv_name"/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/tv_age"/>
<Button
android:id="@+id/btn_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="删除"
android:textColor="#ffffff"
android:background="#ff0000"
/>
</LinearLayout>

效果图:

这里写图片描述

 

人已赞赏
Android文章

android开发view手势滑动冲突的解决方法

2020-2-1 15:47:45

Android文章

Android开发仿华为LoadingView

2020-2-1 16:38:58

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索