Android ExpandableListView分隔符是不可见的

时间:2012-08-27 15:48:35

标签: android android-listview expandablelistview divider

我有以下ExpandableListView:

<ExpandableListView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/listView"
            android:groupIndicator="@android:color/transparent"
            android:background="@color/app_background"
            android:scrollingCache="false"
            android:choiceMode="none"
            android:divider="@color/gray_dark"
            android:dividerHeight="2dp"
            android:childDivider="@color/gray_dark"
            android:cacheColorHint="@color/app_background"/>

我遇到的问题是可扩展列表视图没有绘制分隔符,或者至少不可见.. 我将自定义视图添加为组视图以及我的可扩展适配器中的自定义列表项。这可能是个问题吗?

有谁知道如何为列表子项启用分隔符?

提前谢谢。

2 个答案:

答案 0 :(得分:13)

我的可扩展适配器似乎有问题。我被覆盖了以下方法:

@Override
public boolean areAllItemsEnabled() {
    return true;
}

我没有返回 true ,而是让方法返回 false ,这就是问题... 因此,如果有人遇到此问题,请检查该方法并确保其返回 true 而不是 false

请注意,如果扩展BaseExpandableListAdapter

,则无需覆盖该方法

答案 1 :(得分:0)

我从未试图弄乱xml中的分隔符,我总是通过代码完成它。以下是一个片段,它将分隔线设置为红色,并在它从中心移动到边缘时淡出。只有一个分隔符高度调用,因为该部分同时影响组和子。

import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.GradientDrawable.Orientation;

// code to set up expandablelistview

int[] colors = {0, 0xFFFF0000, 0}; // red for the example 
getListView().setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
getListView().setChildDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
getListView().setDividerHeight(4);