今天写了个demo,dialog自定义布局添加了个listview,listview item里面加了个checkBox,需求checkBox在列表里有单选的效果:
测试的时候需要点击item也改变checkBox的选中状态,然而listview的点击事件失效了。后来发现是失去焦点了。
最简单的方法就是在item布局跟布局添加
android:descendantFocusability="blocksDescendants"
整体格局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="horizontal" android:gravity="center_vertical" android:descendantFocusability="blocksDescendants" android:layout_height="50dp"> <CheckBox android:id="@+id/CheckBox" android:padding="5dp" android:layout_marginLeft="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/imagee" android:padding="5dp" android:src="@mipmap/ic_launcher" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:text="名字" android:textSize="18sp" android:gravity="center" android:textColor="#000000" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:padding="5dp" android:layout_marginLeft="10dp" android:text="|" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="职位" android:textColor="#000000" android:textSize="18sp" android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
然后就完美解决了。