Fil*_*nik 30 android expandablelistview android-fragments

我必须从左到右移动指示器(因为平面图像).我也无法成功,因为expandableviewlist位于片段内,而不是整个活动内.任何的想法?谢谢!
小智 120
我不知道从XML那里做到这一点,但我会告诉你一种在你的适配器中动态执行此操作的方法.
首先,您必须从xml中删除组指示符
<ExpandableListView [...]
android:groupIndicator="@null" />
Run Code Online (Sandbox Code Playgroud)
然后在您的父级布局中,在布局的正确位置添加一个imageview.
然后在自定义适配器中执行以下操作
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
...
if (isExpanded) {
groupHolder.img.setImageResource(R.drawable.group_down);
} else {
groupHolder.img.setImageResource(R.drawable.group_up);
}
...
}
Run Code Online (Sandbox Code Playgroud)
use*_*217 14
另一个解决方案是:1)首先将ExpandableListView中的groupIndicator设置为@null:
<ExpandableListView [...]
android:groupIndicator="@null" />
Run Code Online (Sandbox Code Playgroud)
2)然后创建group_indicator.xml文件,其中包含以下详细信息:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/down_icon" android:state_selected="false"></item>
<item android:drawable="@drawable/up_icon" android:state_selected="true"></item>
<item android:drawable="@drawable/down_icon"></item>
</selector>
Run Code Online (Sandbox Code Playgroud)
3)然后使用以下详细信息创建group_header.xml布局,并在ExpandableListAdapter.java的getGroupView()方法中扩展此布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<TextView
android:id="@+id/tvHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:textColor="@color/white"
android:layout_centerVertical="true"
android:textSize="16sp"/>
<ImageView
android:id="@+id/ivGroupIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/group_indicator"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
3)在ExpandableListAdapter.java类的getGroupView()方法中,只需设置以下内容:
ivGroupIndicator.setSelected(isExpanded);
Run Code Online (Sandbox Code Playgroud)
使用这种方法,你的down_icon和up_icon将正常工作.希望这可以帮助.
将其放入您的 xml 视图中:
<ExpandableListView
...
android:layoutDirection="rtl" />
Run Code Online (Sandbox Code Playgroud)
您可以根据自己的喜好在布局项中设置文本标题的重力。
您的文本视图父列表项:
<TextView
...
android:gravity="center"/>
Run Code Online (Sandbox Code Playgroud)
例如。结果: