项目之间具有特定间距的 ListView

Posted

技术标签:

【中文标题】项目之间具有特定间距的 ListView【英文标题】:ListView with specific spacing between items 【发布时间】:2017-12-04 18:17:03 【问题描述】:

我有一个ListView 并希望根据这两个项目增加/减少项目之间的间距。我基本上让项目随机交替边,并希望当项目在相对侧时间距增加。 我知道如何平均增加所有项目之间的间距,但在涉及特定行时不知所措。

【问题讨论】:

【参考方案1】:

只需比较相应列表行的数据,并为View添加适当的边距或填充。

只是一个例子(如果没有看到您的任何代码,很难提供具体的帮助):

@Override
public View getView(int position, View convertView, ViewGroup parent) 
    LayoutInflater inflater = LayoutInflater.from(someContext)
    View row = inflater.inflate(R.layout.some_layout, parent, false);

    if (position > 0) 
        Data previous = someDataset.get(position - 1);
        Data current = someDataset.get(position);

        if (previous.something() == current.something()) 
            // add margin or padding to row
        
    

    // set TextView texts, ImageView images etc., whatever your row has

    return row;

如果您不知道如何以编程方式将边距添加到 View,那么有很多现有的问题,here's an answer。

如果您想添加填充,只需在您的 View 上调用 setPadding() 方法即可。

【讨论】:

以上是关于项目之间具有特定间距的 ListView的主要内容,如果未能解决你的问题,请参考以下文章

如何为 QML 布局中的项目指定特定间距?

是否可以在 flexbox 项目之间创建灵活的间距?

具有相等项目间距的自定义 UICollectionViewLayout

动态调整 UICollectionView 大小以确保没有项目间距

如何在视图之间创建具有可变间距的 UIStackView?

R Shiny CSS:删除特定行之间的空间,同时保持所有其他间距不变