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

标签 android listview spacing

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

最佳答案

只需比较相应列表行的数据,并在View中添加适当的margin或padding。

只是一个例子(很难在没有看到你的任何代码的情况下提供具体的帮助):

@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() 方法即可。

关于android - 项目之间具有特定间距的 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44852356/

相关文章:

java - XmlResourceParser.getText() 在单引号字符后删除文本,忽略双引号

java - 我正在尝试使用 ListView 按钮从 cutomlistadapter 打开 Android Activity 。我尽了最大努力但没有结果?

图片上方的 Android ScrollView

css - 无法将两个 div 直接放在彼此之上

android - 正则表达式匹配Android包名

java - 从字符串变量中的给定 URL 下载 HTML 源代码的正确实现的说明

android - Room API - 如何检索最近插入的实体生成 id?

listview - 单击 ListView 项时如何转到其他 Activity ?

java - 如何将 "erase"数字仅包含该数字的第一位数字

html - 让输入框中的文本从 X 像素开始