Android:在ExpandableListView中隐藏子分隔符

Ale*_*kov 39 android android-widget

我需要从ExpandableListView中完全删除分隔符.至于父项,它是一个setDividerHeight方法,我可以传递零值.但是对于儿童分隔器没有类似的方法.有没有办法隐藏它?

小智 50

如果要完全删除分隔符ExpandableListView,setDividerHeight则父项和子项都可以.子分隔符将使用与普通分频器相同的高度绘制或设置setDividerHeight().

我正在使用一个工作来隐藏一个并取消隐藏另一个,只需将分隔符和项目设置为相同颜色,如下所示:

 ExpandableListView expView = getExpandableListView();
 expView.setGroupIndicator(null);
 expView.setChildIndicator(null);
 expView.setChildDivider(getResources().getDrawable(R.color.greywhite));        
 expView.setDivider(getResources().getDrawable(R.color.white));
 expView.setDividerHeight(2);
Run Code Online (Sandbox Code Playgroud)

setDividerHeight必须低于setChildDividersetDivider,或高度为0.

等待更多答案......


Dav*_*-mu 26

隐藏子分隔符将其颜色设置为透明#00000000

在color.xml文件中定义透明

<color name="transparent">#00000000</color>
Run Code Online (Sandbox Code Playgroud)

然后设置子分隔符

listView.setChildDivider(getResources().getDrawable(R.color.transparent))
Run Code Online (Sandbox Code Playgroud)

或者在布局xml文件中

<ExpandableListView 
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:childDivider="#00000000"/>
Run Code Online (Sandbox Code Playgroud)

  • 将分隔线设置为透明色并不能真正消除它. (9认同)
  • 或者你可以使用`android:childDivider ="@ android:color/transparent"` (7认同)

小智 8

您可以使用属性

<ExpandableListView 
    android:id="@+id/interestlvExp"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:divider="@null">
</ExpandableListView>
Run Code Online (Sandbox Code Playgroud)

但这也将删除组列表分隔符。