0

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

编辑:我想要的是能够在组为空时隐藏指示箭头

4

2 回答 2

1

是的。你可以。

使用BaseExpandableListAdapter

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

你应该覆盖它。

以简单的方式,您有两种类型的项目。例如可扩展(类型 1)和不可扩展(类型 2)。

getGroupTypeCount() 应该返回 2;

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

我认为这很简单。

于 2013-01-19T17:28:10.937 回答
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 );
    }

有关隐藏组指示器的更多信息,您可以参考此链接

或者

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>

希望这能解决您的问题。

于 2013-01-19T17:30:30.910 回答