【问题标题】:Add gap between group items in ExpandableListView在 ExpandableListView 中的组项之间添加间隙
【发布时间】:2012-12-03 07:44:13
【问题描述】:

如何在ExpandableListView 中的组项目之间添加间隙(比如说 20dp)?我有以RelativeLayout 为父的自定义组布局。向父级添加边距没有帮助。

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    不确定您的目标是什么,但这是一个想法

    将您在主要活动中获得的列表传递给您的自定义列表

    MyExpandableListAdapter myAdapter = new MyExpandableListAdapter(expandableList);
    

    在您的自定义列表类方法中:

    private ExpandableListView exp;
    
    public MyExpandableListAdapter(ExpandableListView exp)
    {
        this.exp = exp;
    }
    
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)
    {
    
        if (convertView == null)
        {
            LayoutInflater infalInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.list_child, null);
        }
    
        exp.setDividerHeight(0);
    
        return convertView;
    
    }
    
    
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)
    {
    
        if (convertView == null)
        {
            LayoutInflater infalInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.list_row, null);
        }
    
        exp.setDividerHeight(20);
    
        return convertView;
    }
    

    例如,这应该在组之间而不是子组之间添加间距

    【讨论】:

    • 似乎我应该更仔细地阅读 ExpandableListView 规范 - 第二个我的问题和第二个单线解决方案。谢谢,正是我需要的。
    • 我认为这对你没有多大帮助,我只是使用 expandableList 太多了,不客气
    • @Stupidus 这对我有用,但在这种情况下,增加的区域是灰色的,我的列表背景是白色的,这看起来很尴尬:(....你能建议解决方案吗?
    • @YS Bhai 是灰色的子分隔器还是组分隔器?或者什么是灰色?
    • 这不起作用。它给出了随机的分隔高度。
    【解决方案2】:

    对于未来,在xml布局中,您只需将android:dividerHeight"添加到您的ExpandableListView,还可以调整分隔线颜色:

           <ExpandableListView
            android:id="@+id/expandableListView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:divider="@color/red"
            android:dividerHeight="5dp"
            android:indicatorLeft="? 
            android:attr/expandableListPreferredItemIndicatorLeft"
            />
    

    【讨论】: