У меня есть listview, каждая строка которого состоит из нескольких текстов. Одно из них - это имя группы, которое я показываю, когда оно отличается от предыдущего. В то же время я хочу создать пространство для разделения категорий для лучшего внешнего вида. Поэтому я добавил отступы в методе GetView моего baseAdapter, как указано между ** **:Добавить пробел между определенными строками в listview
@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;
}}
Он отлично работает на первую страницу, но когда я прокручиваю этот список, или я вернусь .... заполнение создается на всех строках, и я теряю космический эффект. Тем не менее, имя группы не написано повсеместно, хотя строка кода появляется в том же состоянии.
Я не могу найти, где проблема, не могли бы вы мне помочь?
Большое спасибо.
Спасибо, я последовал вашему примеру и другой, и теперь он идеально –