android:更改指示器图标和用于导航的expandablelistview的大小

我正在制作一个应用程序,在这个应用程序中,我必须使用给定的图像进行可扩展列表视图。当然,我正在谈论的指标图标和它的大小,导航path。任何人都可以告诉我如何更改该图像。任何帮助将不胜感激。

Solutions Collecting From Web of "android:更改指示器图标和用于导航的expandablelistview的大小"

您可以使用下面的代码:

<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); 

我不太确定指标的大小,设置指标界限可能会影响指标的宽度,但不会影响指标的高度。

您可以通过将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; } 

虽然这种方法需要做一些额外的工作,以便在扩展该组时扩展该指示器,例如监听器来判断一个特定的组是否被扩展并相应地改变该图像。

这是正确的,检查我的应用程序

 <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>