Layout différents dans une ListView
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 :
http://img11.hostingpics.net/pics/513214jK3q3.png
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 :
http://img11.hostingpics.net/pics/499154n8RX8.png
voici mon Adapter :
Code:
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;
}
} |
voici mon activity_souscarte_list_item_titlesouscategorie.xml :
Code:
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> |
et my activity_souscarte_list_item_elementsouscategorie.xml :
Code:
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> |
J'aimerai garder une seule ListView et je ne vois pas trop comment procéder..
Est ce possible ?
Merci 8-)