我正在制作一个应用程序,其中我必须使用给定图像的可扩展列表视图。我正在谈论指示器图标及其大小导航路径。任何人都告诉我如何更改该图像。任何帮助将是赞赏。
答案 0 :(得分:33)
您可以使用以下代码:
<ExpandableListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="10dp"
android:groupIndicator="@drawable/settings_selector" />
... setting_selector
所在的位置:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/up_arrow"
android:state_empty="true" />
<item android:drawable="@drawable/down_arrow"
android:state_expanded="true" />
</selector>
答案 1 :(得分:13)
<ExpandableListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="10dp"
android:groupIndicator="@drawable/settings_selector"
/>
和
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/up_arrow" android:state_expanded="true"/>
<item android:drawable="@drawable/down_arrow" android:state_expanded="false"/>
</selector>
他忘了把
<item android:drawable="@drawable/down_arrow" android:state_expanded="false"/>
在里面。
对我来说,android:state_empty
无效。
答案 2 :(得分:6)
这是设置群组指标的有效方法
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_empty="true">
<layer-list>
<item
android:left="20dp"
android:right="-30dp"
android:top="120dp"
android:bottom="10dp"
android:drawable="@drawable/panier_plus">
</item>
</layer-list>
</item>
<item android:state_expanded="true">
<layer-list>
<item
android:left="20dp"
android:right="-30dp"
android:top="120dp"
android:bottom="10dp"
android:drawable="@drawable/panier_minus"
>
</item>
</layer-list>
</item>
答案 3 :(得分:1)
如果您的意思是展开/折叠组图标,那么
Drawable d = getResources().getDrawable(R.drawable.settings_selector);
//position it in the group layout by setting the bounds
//params are left and right bounds
myExpandableList.setIndicatorBounds(345,375);
myExpandableList.setGroupIndicator(d);
我对指标的大小不太了解,设置指标边界会影响指标的宽度而不是高度。
您可以通过将drawable设置为null来移除指示符,然后在ExpandableAdapter中的getGroupView()中使用图像视图为自定义布局充气。
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
View convertView = null;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.customLayout, null);
return convertView;
}
虽然此方法需要一些额外的工作才能在扩展组时更改指示符,例如监听器以判断特定组是否已展开并相应地更改图像。
答案 4 :(得分:0)
这是正确的,请检查我的应用
<ExpandableListView
android:id="@+id/expandableListView"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:indicatorLeft="?android:attr/expandableListPreferredItemIndicatorLeft"
android:divider="@android:color/darker_gray"
android:groupIndicator="@drawable/select_next"
android:dividerHeight="0.5dp" />
请按照以下方式使用,如下所示....
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_add_black_24dp"
android:state_empty="true" />
<item android:drawable="@drawable/ic_remove_black_24dp"
android:state_expanded="false" />
</selector>
答案 5 :(得分:0)
尝试使用此:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_up_arrow" android:state_expanded="true" />
<item android:drawable="@drawable/ic_down_arrow" android:state_pressed="false"/>
</selector>