我正在尝试使用ExpandableListView,在群组视图中,我需要一个textview和一个复选框(复选框位于右侧)。 我看到的问题是groupIndicator视图不再可以点击 - 点击它不会再扩展组。如果我删除该复选框,则groupIndicator接收事件,组可扩展。另一个接收某种焦点的View也会发生同样的情况,例如EditText。 以下是包含ExpandableListView:
的片段的布局<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ExpandableListView
android:id="@+id/categoryList"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ExpandableListView>
</RelativeLayout>
小组的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white_background"
android:orientation="horizontal" >
<TextView
android:id="@+id/txtCategoryGroup"
android:layout_width="0dip"
android:layout_height="@dimen/items_filter_group_height"
android:layout_marginLeft="45dp"
android:layout_marginRight="20dp"
android:layout_weight="1"
android:gravity="center_vertical|left"
android:textIsSelectable="false" />
<!--
<CheckBox
android:id="@+id/cbGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</CheckBox>
-->
</LinearLayout>
......如果你觉得有用,那就是孩子的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="@dimen/items_filter_child_height"
android:background="@color/white_background"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/cbProperty"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</CheckBox>
</LinearLayout>
如果CheckBox未被注释,附件是我得到的布局:
点击红色标记的groupIndicator不会扩展该组。留下评论扩大了它。如上所述:奇怪的是EditText也是如此。
解决方法是将groupIndicator设置为@null,并将TextView的复合左侧drawable设置为响应ExpandableListView#OnGroupCollapseListener和#OnGroupExpandListener的相关内容,但我对编写某些内容的代码并不乐意那样的。
谢谢!
答案 0 :(得分:1)
将android:descendantFocusability =“blocksDescendants”放在组和子组的LinearLayout中。