如何显示可扩展和单个列表视图

时间:2013-01-19 16:23:08

标签: android

有没有办法在同一个列表视图中显示可扩展和不可扩展的列表? 我想要实现的是拥有可扩展的列表视图,但是对于没有子项的项目,我不想显示箭头展开箭头图标 我怎么能这样做?请帮忙 感谢

编辑:我想要的只是当小组为空时隐藏指示箭头

2 个答案:

答案 0 :(得分:1)

是。你可以。

使用BaseExpandableListAdapter

这个类有下一个方法: getGroupTypeCount()和getGroupType(int groupPosition)

你应该覆盖的

简单来说,你有两种类型的物品。例如,可扩展(类型1)和不可扩展(类型2)。

getGroupTypeCount()应返回2;

覆盖getGroupView(int groupPosition,boolean isExpanded,View convertView,ViewGroup parent) 在此方法中,按项目的位置检查项目的类型。 如果item不可展开,你应该生成View,它的外观不依赖于它是否被展开。

我认为这很简单。

答案 1 :(得分:1)

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

有关隐藏群组指标的详细信息,请参阅this link

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>

希望这能解决您的问题。