1

以下代码

 <TextView
    android:id="@+id/lblListHeader"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
    android:paddingRight="20dp"
    android:textSize="18sp" 
    android:singleLine="true" />

<TextView
    android:id="@+id/lblListDesc"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
    android:paddingTop="25dp"
    android:textSize="12sp"
    android:text="This is Desc" />    

过程 setOnGroupClickListener 有效

    expListView.setOnGroupClickListener(new OnGroupClickListener() {
         @Override
        public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
            Toast.makeText(getApplicationContext(), "Group Clicked " + listDataHeader.get(groupPosition), Toast.LENGTH_SHORT).show();
            return true;
        }
    });

但是,如果您添加一个按钮

 <TextView
    android:id="@+id/lblListHeader"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
    android:paddingRight="20dp"
    android:textSize="18sp" 
    android:singleLine="true" />

<Button
    android:id="@+id/iconShowParamGroup"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignParentRight="true"            
    android:background="@drawable/ic_launcher" 
    android:onClick="showParamGroup" />

<TextView
    android:id="@+id/lblListDesc"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
    android:paddingTop="25dp"
    android:textSize="12sp"
    android:text="This is Desc" /> 

该过程 setOnGroupClickListener 不起作用。并据此产生以下不予披露。你能指出我的错误吗?

谢谢!

4

2 回答 2

2

似乎您添加到项目中的 Button 获得了项目焦点和 onClick 事件,只需将 Button focusable 设置为 false。检查这个:

<Button
        android:id="@+id/iconShowParamGroup"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentRight="true"
        android:background="@drawable/ic_launcher"
        android:focusable="false"
        android:onClick="showParamGroup" />

希望这可以帮助。

于 2013-10-29T04:38:18.180 回答
0

android:descendantFocusability="blocksDescendants"您必须在ExpandableListView中包含该参数:

<ExpandableListView
    android:id="@+id/treatments_expandable_list"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:descendantFocusability="blocksDescendants"
    android:groupIndicator="@null"/>
于 2017-03-15T11:40:12.913 回答