私はこの問題をより複雑な方法で解決しますが、うまくいきます:
展開可能なリストを含むレイアウト ファイルのフラグメント:
<ExpandableListView
android:id="@+id/accordion"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:groupIndicator="@android:color/transparent"
android:scrollbars="none" >
</ExpandableListView>
リスト グループ要素のレイアウト
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/accordion_main_background"
android:minHeight="50dip"
android:orientation="vertical"
android:padding="@dimen/screenPromoTaskRootPadding" >
<TextView
android:id="@+id/accordionTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="10dip"
android:layout_toLeftOf="@+id/accordionIndicator"
android:background="@color/accordionOrangeBackColor"
android:paddingLeft="2dip"
android:paddingRight="2dip"
android:textColor="@color/blackTextColor"
android:textSize="@dimen/accordMainTextSize" />
<ImageView
android:id="@+id/accordionIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/arrow_up_np" />
</RelativeLayout>
そして活動中。adaptDataCollection は、ExpandableListAdapter のデータを含む単なるリストでした。また、これはアコーディオンの実装の一部であるため、リスト グループは選択された要素の後に他の要素を折りたたみます。
ExpandableListView accordion = (ExpandableListView) findViewById(R.id.accordion);
accordion.setOnGroupClickListener(this);
@Override
public boolean onGroupClick(ExpandableListView paramExpandableListView, View paramView, int paramInt, long paramLong) {
ImageView icon=(ImageView)paramView.findViewById(R.id.accordionIndicator);
for (int i = 0; i < adapterDataCollection.size(); i++) {
if (i == paramInt) {
if (paramExpandableListView.isGroupExpanded(i)) {
paramExpandableListView.collapseGroup(i);
icon.setImageResource(R.drawable.arrow_up_np);
} else {
paramExpandableListView.expandGroup(i);
icon.setImageResource(R.drawable.arrow_down_np);
}
} else {
paramExpandableListView.collapseGroup(i);
icon.setImageResource(R.drawable.arrow_up_np);
}
}
paramExpandableListView.invalidate();
return true;
}