我正在制作一个应用程序,其中需要使用给定的图像来构建可扩展列表。实际上,我说的是指示器图标及其大小,它们用于导航路径。有人可以告诉我如何更改那个图像吗?任何帮助将不胜感激。
我正在制作一个应用程序,其中需要使用给定的图像来构建可扩展列表。实际上,我说的是指示器图标及其大小,它们用于导航路径。有人可以告诉我如何更改那个图像吗?任何帮助将不胜感激。
<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>
<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
没有起作用。
这是设置组指示器的有效方法
<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>
如果您指的是展开/折叠组图标,则
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);
我对指示器的大小不太确定,设置指示器边界可以影响指示器的宽度但不影响高度。
您可以将可绘制设置为 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;
}
虽然这种方法需要额外的工作来让指示器在组被展开时改变,比如监听器告诉我们特定的组是否被展开,并相应地改变图像。
<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>
没错,检查一下我的应用程序
<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>
<item android:drawable="@drawable/up_arrow" android:state_empty="true" />
应该改为android:state_expanded=false
。 - Yasin Yaqoobi