Bonjour à tous,
Je set une ListView avec 2 types d'objets différents : Food (objet a afficher dans la liste)et SectionItem (objet qui me sert de séparateur).
Mon rendu est comme ceci :
J'aimerai savoir s'il est possible de créer une différence de padding ou de margin (je ne sais pas trop) entre les objets Food et SectionItem, comme sur ce screen :
voici mon Adapter :
voici mon activity_souscarte_list_item_titlesouscategorie.xml :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 public class FoodsAdapter extends ArrayAdapter<Item> { private Context context; private ArrayList<Item> items; private LayoutInflater vi; public FoodsAdapter(Context context,ArrayList<Item> items) { super(context,0, items); this.context = context; this.items = items; vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; final Item i = items.get(position); if (i != null) { if(i.isSection()){ SectionItem si = (SectionItem)i; v = vi.inflate(R.layout.activity_souscarte_list_item_titlesouscategorie, null); v.setOnClickListener(null); v.setOnLongClickListener(null); v.setLongClickable(false); final TextView sectionView = (TextView) v.findViewById(R.id.souscarte_titlesouscategorie); sectionView.setText(si.getTitle()); }else{ Food food = (Food)i; v = vi.inflate(R.layout.activity_souscarte_list_item_elementsouscategorie, null); final TextView title = (TextView) v.findViewById(R.id.souscarte_element_title); final TextView prix = (TextView) v.findViewById(R.id.souscarte_element_prix); final TextView desc = (TextView) v.findViewById(R.id.souscarte_element_desc); if (title != null) title.setText(food.getName()); if (prix != null) prix.setText(Float.toString(food.getPrice())+ ""); if (desc != null) desc.setText(food.getDescription()); } } return v; } }
et my activity_souscarte_list_item_elementsouscategorie.xml :
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 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/souscarte_titlesouscategorie" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/green" android:gravity="center" android:layout_margin="0dp" android:textColor="@color/white" android:textSize="19sp"/> </LinearLayout>
J'aimerai garder une seule ListView et je ne vois pas trop comment procéder..
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
31
32
33
34
35
36
37 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@color/white" android:id="@+id/souscarte_element_layout" android:layout_marginLeft="17dp" android:layout_marginRight="17dp" android:padding="5dp"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:id="@+id/souscarte_element_title" android:textColor="@color/black" android:layout_weight="3" android:paddingLeft="5dp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:id="@+id/souscarte_element_prix" android:gravity="right" android:textColor="@color/black" android:layout_weight="1" android:paddingRight="5dp"/> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black" android:id="@+id/souscarte_element_desc" android:paddingLeft="5dp" android:paddingRight="5dp"/> </LinearLayout>
Est ce possible ?
Merci
Partager