我想更改显示在 ExpandableListView 的组 View 中的默认箭头的位置。我希望它在右边而不是在左边。
如何做到这一点?
最佳答案
其实有一个简单的方法。
像这样编辑与组 View 相关的 XML:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="35dp" android:orientation="horizontal" > <TextView android:id="@+id/videos_explist_groupname" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_toLeftOf="@+id/videos_group_indicator" android:gravity="center" android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft" android:textAppearance="?android:attr/textAppearanceListItem" /> <ImageView android:id="@+id/videos_group_indicator" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:src="@drawable/videos_chevron_collapsed" /> </RelativeLayout>
看看
ImageView
如何在TextView
的右边。按如下方式编辑您的
ExpandableListAdapter
:@Override public View getGroupView(final int groupPosition, final boolean isExpanded, final View convertView, final ViewGroup parent) { View v; if (convertView == null) { v = newGroupView(isExpanded, parent); } else { v = convertView; } bindView(v, mGroupData.get(groupPosition), mGroupFrom, mGroupTo); ((ImageView) v.findViewById(R.id.videos_group_indicator)) .setImageResource(isExpanded?R.drawable.videos_chevron_expanded:R.drawable.videos_chevron_collapsed); return v; }
如您所见,您可以轻松地设置与组状态对应的 drawable。
我知道很久以前就有人问过这个问题,但这可能会对某些人有所帮助。
关于Android:如何更改 ExpandableListView Indicator 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132699/