有没有办法在同一个列表视图中显示可扩展和不可扩展列表?我想要实现的是拥有可扩展的列表视图,但对于没有子项目的项目,我不想显示箭头展开箭头图标我该怎么做?请帮忙谢谢
编辑:我想要的是能够在组为空时隐藏指示箭头
有没有办法在同一个列表视图中显示可扩展和不可扩展列表?我想要实现的是拥有可扩展的列表视图,但对于没有子项目的项目,我不想显示箭头展开箭头图标我该怎么做?请帮忙谢谢
编辑:我想要的是能够在组为空时隐藏指示箭头
是的。你可以。
这个类有下一个方法:getGroupTypeCount() 和 getGroupType(int groupPosition)
你应该覆盖它。
以简单的方式,您有两种类型的项目。例如可扩展(类型 1)和不可扩展(类型 2)。
getGroupTypeCount() 应该返回 2;
在此方法中覆盖 getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) 按项目的位置检查项目的类型。如果项目不可扩展,您应该生成其外观不依赖于是否扩展的视图。
我认为这很简单。
1)基本上,当组没有孩子时,你必须隐藏“展开箭头”。您可以通过将GroupIndicator
属性设置为 null 来实现此目的。
例如: getExpandableListView().setGroupIndicator(null);
或者
2)通过检查孩子的数量,您可以像下面的代码一样设置指标,
if ( getChildrenCount( groupPosition ) == 0 ) {
indicator.setVisibility( View.INVISIBLE );
} else {
indicator.setVisibility( View.VISIBLE );
indicator.setImageResource( isExpanded ? R.drawable.list_group_expanded : R.drawable.list_group_closed );
}
有关隐藏组指示器的更多信息,您可以参考此链接。
或者
3)在drawable文件夹中创建一个group_indicator.xml文件
<item android:state_empty="true" android:drawable="@android:color/transparent"></item>
<item android:state_expanded="true" android:drawable="@drawable/arrowdown"></item>
<item android:drawable="@drawable/arrowright"></item>
然后,像下面的代码定义可扩展的列表视图,
<ExpandableListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:groupIndicator="@drawable/group_indicator"
android:layout_weight="1" >
</ExpandableListView>
希望这能解决您的问题。