2014-10-21 2 views
1

У меня есть 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; 
}} 

Он отлично работает на первую страницу, но когда я прокручиваю этот список, или я вернусь .... заполнение создается на всех строках, и я теряю космический эффект. Тем не менее, имя группы не написано повсеместно, хотя строка кода появляется в том же состоянии.

Я не могу найти, где проблема, не могли бы вы мне помочь?

Большое спасибо.

ответ

0

Адаптер поддерживает несколько видов.

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

Реализовать getItemViewType & getViewTypeCount затем в GetView называют getItemViewType и на основе ответа создать правильный вид.

здесь пример, который использует функциональные возможности, чтобы дать каждой строке различный цвет: https://github.com/codepath/android_guides/wiki/Implementing-a-Heterogenous-ListView

+1

Спасибо, я последовал вашему примеру и другой, и теперь он идеально –

Смежные вопросы