Bonjour,
J'ai une listview dont chaque ligne est constituée de plusieurs textes. L'un d'eux désigne une catégorie, que j'affiche dès lors qu'il est différent du précédent. En plus de cette contrainte, je veux décaler la nouvelle catégorie pour faire plus joli. j'ai donc ajouté un padding comme indiqué en gras:
Ca marche en première page, mais dès que je fais défiler la liste, que je revienne.... le padding se crée sur toute les lignes, et je perd mon effet d'espacement. J'ai l'impression que c'est la condition qui n'est pas juste, mais je ne vois pas ce qui cloche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 @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); //c'est le linearlayout parent des lignes 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; } }
Merci de votre aide
Partager