我有一个列表视图,其每行由多个文本组成。其中一个是我所显示的群组名称,与之前的群组名称不同。同时,我想创建一个空间来分隔类别以获得最佳外观。所以我在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;
}}
它适用于第一页,但是当我滚动列表时,或者我回来了....在所有行上创建了填充,我失去了空间效果。然而,尽管代码行出现在相同的条件下,但组名并未随处写入。
我无法找到问题所在,你能帮助我吗?
非常感谢。
答案 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