【问题标题】:Hide divider without hiding childDivider on ExpandableListView在 ExpandableListView 上隐藏分隔线而不隐藏 childDivider
【发布时间】:2012-01-16 13:17:14
【问题描述】:

我找不到在不隐藏子分隔符的情况下隐藏 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" 我会同时获得组和子分隔符。

提前致谢!

【问题讨论】:

标签: android transparent expandablelistview divider


【解决方案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" />        

这是非常非常难看但有效。

但是,应该有一种方法可以正确地做到这一点。

【讨论】:

    【解决方案2】:
    expListView.setDivider(null);
    expListView.setDividerHeight(2);
    

    这会起作用

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        添加一行怎么样:

        android:dividerHeight="0dp"

        实际上,我面临着类似的问题。 PD 询问分频器和 childDivider 既存在又不同,这让我很困扰。我也在寻找答案。

        【讨论】:

          【解决方案5】:

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

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

          -在视图中绘制分隔线 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);
          

          -之后你可以设置分隔符跟随组的位置。

          【讨论】:

            猜你喜欢
            • 2011-03-15
            • 2012-01-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多