次のコードに基づいて、ユーザーがディスプレイ上でそれを押しState List Selector
たときに、の単一の子行を強調表示することができました:ExpandableListView
XML 状態セレクター コード:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:state_pressed="true"
android:drawable="@color/highlighted_entry" />
<item
android:state_selected="true"
android:drawable="@color/highlighted_entry" />
<item android:drawable="@color/transparent" />
</selector>
XML ExpandableListView レイアウト コード:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:background="@drawable/exp_list_entry_selector"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" >
<TextView android:id="@+id/exp_list_entry_title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:textStyle="bold"
android:textSize="12dp"
android:textColor="#000000"
/>
</LinearLayout>
Java コード:
@Override
public boolean onChildClick( ExpandableListView parent, View v,
int groupPosition, int childPosition, long id )
{
v.setSelected(true);
return false;
}
グループ行 (展開可能なのエントリ) を強調表示しようとすると、この同じアプローチは機能しませんListView
: ユーザーがそれを押すと (そして子を展開または折りたたむと) 強調表示されますが、それを放した後、背景色は通常に戻ります。
展開されているかどうかに関係なく、グループ行を強調表示するにはどうすればよいですか?