Tom*_*Mor 15 android expandablelistview
我有小图标的组指示,我使用groupIndicator调用选择器来绘制它,但我看到android默认拉伸该图标以适合文本大小
我该如何防止这种行为,并显示原始大小的图标?
小智 6
您可以通过setGroupIndicator方法添加组指示符.但默认情况下,Android拉伸指标的高度以适合组项的高度.(宽度可以通过setIndicatorBounds方法调整.)因此,您应该使组指示符的高度与组项目的高度完全相同.(参见ExpandableListView)
否则,您可以使用onGroupCollapsed和onGroupExpanded方法创建完全自定义的组指示符.只需使用某些状态创建视图,并在调用这些方法时,更改视图的状态.(参见ExpandableListAdapter)
小智 6
<ExpandableListView
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/elv_store_info_Expandlist"
android:cacheColorHint="#FFFFFF"
android:overScrollMode="never"
android:fastScrollEnabled="false"
android:fastScrollAlwaysVisible="false"
android:indicatorRight="20dp"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:groupIndicator="@drawable/store_info_expandabellist_indicator"
/>
Run Code Online (Sandbox Code Playgroud)
@ store_info_expandabellist_indicator.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_empty="true" android:drawable="@drawable/bitmap_btn_arraw_right_dark_small">
</item>
<item android:state_expanded="true" android:drawable="@drawable/bitmap_btn_arraw_bottom_white_small">
</item>
<item android:drawable="@drawable/bitmap_btn_arraw_right_dark_small">
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
@bitmap_btn_arraw_right_dark_small
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:left="11dp"
android:right="11dp"
android:top="12dp"
android:bottom="12dp"
android:drawable="@drawable/btn_arrowright_dark">
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
我认为在这种情况下最简单的事情是将指示器包含在行组视图中(作为 imageView),并根据组是否展开来更改其选定状态。您需要确保您的 ImageView 使用具有选定状态可绘制对象的选择器。
像这样的东西:
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)
{
View row;
if (convertView != null)
{
row = convertView;
}
else
{
row = LayoutInflater.from(getContext()).inflate(R.layout.group_row, null));
}
final ImageView indicator = (ImageView)row.findViewById(R.id.indicator);
indicator.setSelected(isExpanded);
return row;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19387 次 |
| 最近记录: |