隐藏分隔符而不在ExpandableListView上隐藏childDivider

时间:2012-01-16 13:17:15

标签: android transparent expandablelistview divider

我找不到在ExpandableListView上隐藏分隔符的方法,也没有隐藏子分隔符。

这是我的代码。

<ExpandableListView 
            android:id="@+id/activities_list"
            android:background="@android:color/transparent"
            android:fadingEdge="none"           
            android:groupIndicator="@android:color/transparent"
            android:divider="@android:color/transparent"
            android:childDivider="@drawable/list_divider"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

使用此代码,我没有分组但没有子分隔符。如果我将android:divider设置为"@drawable/list_divider",我会同时获得分组和子分组。

提前致谢!

5 个答案:

答案 0 :(得分:1)

我找到的唯一解决方案是将子分隔符直接放入子XML中,这样:

<TextView
    android:id="@+id/name"
    android:layout_centerVertical="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<ImageView android:id="@+id/divider"        
    android:layout_alignParentBottom="true"
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="@drawable/list_divider" />        

这非常非常丑陋但有效。

但是,应该有办法正确地做到这一点。

答案 1 :(得分:1)

expListView.setDivider(null);
expListView.setDividerHeight(2);

这将起作用

答案 2 :(得分:0)

将dividerHeight参数添加到xml布局中的ExpandableListView应该可以解决问题

答案 3 :(得分:0)

如何添加一行:

机器人:dividerHeight = “0dp”

实际上,我面临类似的问题。 PD要求分隔符和childDivider都存在且不同,这让我很烦恼。我也在寻找答案。

答案 4 :(得分:0)

在我看来: - 用XML删除分隔符:

android:divider="@null"
android:dividerHeight="0dp"

- View getGroupView(..,..,..,..)中的绘图分隔符:

            View divider = new View(_context);
            View dividerIDU = new View(_context);
            RelativeLayout.LayoutParams rldivider = new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.MATCH_PARENT, 1);
            RelativeLayout.LayoutParams rldividerShort = new RelativeLayout.LayoutParams(
                    150, 3);

            rldividerShort.setMargins(5, -1, 0, 0);
            dividerIDU.setBackgroundColor(Color.RED);


            divider.setLayoutParams(rldivider);
            dividerIDU.setLayoutParams(rldividerShort);

            divider.setBackgroundColor(Color.rgb(200, 200, 200));

            ((RelativeLayout) convertView).addView(divider);
            ((RelativeLayout) convertView).addView(dividerIDU);

- 可以在组位置后设置分隔符。