如何完全隐藏 ExpandableListView 的 groupIndicator?
Posted
技术标签:
【中文标题】如何完全隐藏 ExpandableListView 的 groupIndicator?【英文标题】:How can I completely hide the groupIndicator of an ExpandableListView? 【发布时间】:2011-08-16 17:37:43 【问题描述】:我想在自定义 ExpandableListView 中完全隐藏 groupIndicator。
here 提供的示例似乎不起作用。
它建议制作一个选择器并使用我复制的 expList.setGroupIndicator(selector):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/empty_icon">
<item android:state_empty="true" android:drawable="@android:color/transparent"/>
<item android:state_expanded="true" android:drawable="@android:color/transparent" />
<item android:drawable="@android:color/transparent" />
</selector>
这会产生以下错误ERROR/AndroidRuntime(10675): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValuet=0x12/d=0x0 a=2 r=0x7f0b0013
使用 android:id/empty 代替 color/transparent 的类似建议给出了同样的建议。
我怎样才能完全隐藏组指示器?
编辑:事实证明,该代码确实有效...如果您将其放在可绘制资源文件夹而不是布局中。
【问题讨论】:
【参考方案1】:你可以试试这段代码
listView = (ExpandableListView) view.findViewById(R.id.listView);
listView.setGroupIndicator(null);
listView.setChildIndicator(null);
【讨论】:
【参考方案2】:我遇到了同样的问题,这解决了我的问题。 在您的 Listview 的适配器中,将以下内容添加到 getGroupView。
if (groupPosition == 0)
convertView = layoutInflater.inflate(R.layout.blank_layout, null);
else
convertView = layoutInflater.inflate(R.layout.group_indicator_cell,null);
这将使列表的第 0 组空白。
空白布局是一个布局,里面有一些视图,layout_height=0dp。 有用!
【讨论】:
【参考方案3】:你试过改变ExpandableListView
的属性android:groupIndicator="@null"
吗?
【讨论】:
对于任何想要以编程方式执行此操作的人,都可以通过mExpandableListView.setGroupIndicator(null)
完成。以上是关于如何完全隐藏 ExpandableListView 的 groupIndicator?的主要内容,如果未能解决你的问题,请参考以下文章
如何在所有组的第一个孩子上设置 ImageView.VISIBLE,其他 ChildViews 应该隐藏在 ExpandableListView
ExpandableListView - 为没有孩子的组隐藏指示器