我正在尝试创建一个ExpandableListView.群组的初始视图显示正常.但是,当我单击列表项时,我的箭头不会更改.见下图.
如何更改箭头的方向?
我有布局XML:
<ExpandableListView
android:id="@+id/expandable_list"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:divider="@null"
android:background="#ffffff"
android:groupIndicator="@drawable/settings_selector"
android:transcriptMode="alwaysScroll" />
Run Code Online (Sandbox Code Playgroud)
settings_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/arrow_down"
android:state_empty="true"/>
<item
android:drawable="@drawable/arrow_right"
android:state_expanded="true"/>
</selector>
</animation-list>
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的指示器设置为textview旁边,但我无法获得正确的代码来执行此操作.
XML:
<TextView
android:id="@+id/lblListHeader"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
android:textColor="#000000"
android:textSize="17dp" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/lblListHeader"
android:src="@drawable/custom_arrow" />
Run Code Online (Sandbox Code Playgroud)
这是我发现研究的唯一代码堆栈,但我无法使其工作:
//inside getGropView method
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;
Run Code Online (Sandbox Code Playgroud)
主要的问题是它"强调"newGroupView方法等,因为我没有这样的方法,并没有提到如何在我看到的示例中创建它.
此外,一旦我得到解决方案,有人可以尝试向我解释这个代码吗?我已经阅读了很多时间,我只是无法理解它,我是初学者.