【问题标题】:Remove group indicator when use a CursorTreeAdapter for a ExpandableListView将 CursorTreeAdapter 用于 ExpandableListView 时删除组指示符
【发布时间】:2012-01-14 01:50:26
【问题描述】:

在为 ExpandableListView 使用 CursorTreeAdapter 时,是否有 API 或任何官方方法可以删除没有子项的组指示符?

帮助!非常感谢。

【问题讨论】:

标签: android expandablelistview


【解决方案1】:

我为这件事苦苦挣扎了很长时间,我最终这样做的方式是从 ExpandableListView 完全隐藏 GroupIndicator

  <ExpandableListView android:id="@+id/android:list"
android:layout_below="@id/technical_details_label_separator"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:drawSelectorOnTop="false"
android:groupIndicator="@android:color/transparent"
/>

然后我创建了一个扩展 BaseExpandableListAdapter 的自定义适配器,并实现了 getGroupView 方法,在此方法中您可以创建一个带有 ImageView 的视图,您可以手动切换以扩展或收缩组(使用 isExpanded 标志),并隐藏它如果组为空,则完全。

http://developer.android.com/reference/android/widget/ExpandableListAdapter.html#getGroupView(int, 布尔值, android.view.View, android.view.ViewGroup)

【讨论】:

  • 谢谢你。这是一个很好的解决方法。但如果是这样,我们就不能使用组指示器的系统默认外观。
  • 是的,这是真的……但正如我所说,其他解决方案对我不起作用。我尝试了一个 stateList drawable,但它的主要问题是“空”组与非扩展组相同。我将 SDK 数据中的组指示器可绘制对象复制到我的项目中,至少为某些设备提供系统默认外观
  • jucas,您是否尝试过使用扩展 CursorTreeAdapter 的子类?在这种情况下,您的解决方案不起作用。
  • 雷,我没试过,反正我猜是CursorTreeAdapter自己画的
猜你喜欢
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 2013-08-04
  • 1970-01-01
  • 2016-07-17
  • 2014-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多