在列表视图中的某些行之间添加空格

时间:2014-10-21 11:55:31

标签: android listview row adapter space

我有一个列表视图,其每行由多个文本组成。其中一个是我所显示的群组名称,与之前的群组名称不同。同时,我想创建一个空间来分隔类别以获得最佳外观。所以我在baseAdapter的getView方法中添加了一个填充,如** **:

之间所示
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {

    convertView = LayoutInflater.from(context).inflate(
        R.layout.ir_item, parent, false);
}

TextView group = ViewHolder.get(convertView, R.id.data1);
TextView range = ViewHolder.get(convertView, R.id.data2);
TextView assignment = ViewHolder.get(convertView, R.id.data3);
LinearLayout linear = ViewHolder.get(convertView, R.id.line); //it's the linearlayout parent of rows

HashMap<String, String> item = getItem(position);
if (position > 0) {
    if (item.get(GROUP).equals(getItem(position - 1).get(GROUP))) {
    group.setText("");
    } else {
    **linear.setPadding(0, 10, 0, 0);**
    group.setText(item.get(GROUP));
    }
} else {
    group.setText(item.get(GROUP));
}
range.setText(item.get(RANGE) + " (" + item.get(INTENSITY) + ")");
assignment.setText(item.get(ASSIGNMENT));

return convertView;
}}

它适用于第一页,但是当我滚动列表时,或者我回来了....在所有行上创建了填充,我失去了空间效果。然而,尽管代码行出现在相同的条件下,但组名并未随处写入。

我无法找到问题所在,你能帮助我吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

适配器支持多种视图类型。

http://developer.android.com/reference/android/widget/Adapter.html

实施getItemViewType&amp; getViewTypeCount然后在getView中调用getItemViewType并根据响应创建正确的视图。

这是一个使用该功能为每行提供不同颜色的示例: https://github.com/codepath/android_guides/wiki/Implementing-a-Heterogenous-ListView