我已使用下面的代码段更改了可展开列表视图的组指示器。
然而,小组指标出现shrinked
,我似乎无法解释原因。
expandablelistview位于导航抽屉内。
提供了代码和快照。
提前致谢。
将代码移动到右侧的代码:
expListView = (ExpandableListView) getActivity().findViewById(
android.R.id.list);
DisplayMetrics metrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
expListView.setIndicatorBounds(width - UIUtils.getPxFromDp(getActivity(), 40), width - UIUtils.getPxFromDp(getActivity(),20));
更改指标的代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_action_navigation_expand_black" android:state_empty="true"> </item>
<item android:drawable="@drawable/ic_action_navigation_collapse_black" android:state_expanded="true"></item>
<item android:drawable="@drawable/ic_action_navigation_expand_black"></item>
</selector>
<android.support.v4.widget.DrawerLayout
.....
<ExpandableListView
android:id="@android:id/list"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="@android:color/white"
style="@style/ListViewMyApplynxTheme"
android:groupIndicator="@drawable/explist_custom_group_indicator"
android:divider="#D3D3D3"
android:dividerHeight="1dp"/>
</android.support.v4.widget.DrawerLayout>
Group Item的XML,也与子项目相同:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:orientation="horizontal" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_action_delete_black"
android:layout_marginLeft="30dp" />
<TextView
android:id="@+id/item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Menu Item"
android:gravity="center|left"
android:paddingLeft="10dp" />
快照:
答案 0 :(得分:4)
我遇到了同样的问题。
我删除了组指示符,如:
android:groupIndicator="@null"
然后我在组头中放了一个ImageView。在 getGroupView()的Adapter中,我为此ImageView提供了与组指示符相同的功能:
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
// initialize ImageView
ImageView imgExpandCollapse = (ImageView) convertView.findViewById(R.id.imgExpandCollapse);
// check if GroupView is expanded and set imageview for expand/collapse-action
if(isExpanded){
imgExpandCollapse.setImageResource(R.drawable.ic_action_collapse);
}
else{
imgExpandCollapse.setImageResource(R.drawable.ic_action_expand);
}
return convertView;
}
答案 1 :(得分:1)
为了避免缩放,您必须使用九个补丁图像而不是常规的png&#39; https://groups.google.com/forum/#!topic/android-developers/KfrpFr4kYOI
如何创建9补丁:http://developer.android.com/tools/help/draw9patch.html 您可以在任何图形编辑器或位于sdk \ tools目录中的特殊工具中创建它。 不要忘记将文件命名为your_file_name.9.png。
答案 2 :(得分:-1)
点击此链接。并给setIntrinsicbounds(30,10);
赋值https://androidrant.com/2013/03/02/expandablelistview-group-indicator-bounds-nonsense/
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_empty="true">
<layer-list>
<item
android:left="0dp"
android:right="0dp"
android:top="10dp"
android:bottom="10dp"
android:drawable="@drawable/right">
</item>
</layer-list>
</item>
<item android:state_expanded="true">
<layer-list>
<item
android:left="0dp"
android:right="0dp"
android:top="10dp"
android:bottom="10dp"
android:drawable="@drawable/down">
</item>
</layer-list>
</item>