Je suis en train de faire une listview qui ressemble à ceci: alt text http://pici.se/pictures/hjFksZvLx.jpgAligner à droite et à gauche avec linéaire ou relativelayout avec du texte tronqué?
Il comporte deux parties, la gauche est aligné à gauche et contient deux textviews qui sont une seule ligne et tronquée. Le droit fait partie a aussi deux textviews mais ils sont alignés à droite et ont une taille constante. Le problème principal est que la partie droite ne s'aligne pas à droite. Si j'utilise une largeur statique pour le pousser vers la droite, cela fonctionne plutôt bien, mais cela ne semble pas très bien en mode paysage.
Je pensais que cela devrait être simple à accomplir. Mais ce n'était pas le cas.
D'abord j'ai essayé avec LinearLayout:
<?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="horizontal">
<LinearLayout
android:orientation="vertical"
android:id="@+id/L1"
android:layout_height="fill_parent"
android:layout_weight="0.8"
android:layout_width="0dip">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:text="Long text Long text Long text Long text Long text Long text Long text" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:text="Short text" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:id="@+id/L2"
android:layout_gravity="top|right"
android:layout_height="fill_parent"
android:layout_weight="0.2"
android:layout_width="0dip">
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="12:12" />
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="64%"
android:layout_gravity="right" />
</LinearLayout>
</LinearLayout>
Je tripotage avec la propriété de poids, mais il ne semble pas aider. La partie droite ne s'aligne pas du tout sur la droite.
Et puis j'ai essayé avec Relativelayout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<TextView
android:id="@+id/text1"
android:layout_height="wrap_content"
android:lines="1"
android:scrollHorizontally="true"
android:layout_alignParentTop="true"
android:text="Long text Long text Long text Long text Long text Long text Long text"
android:layout_alignParentLeft="true"
android:ellipsize="end"
android:layout_width="275dp" />
<TextView
android:id="@+id/text2"
android:layout_height="wrap_content"
android:lines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:text="Long text Long text Long text Long text Long text Long text Long text"
android:layout_below="@+id/text1"
android:layout_alignParentLeft="true"
android:layout_width="275dp" />
<TextView
android:id="@+id/text3"
android:layout_height="wrap_content"
android:text="12:12"
android:layout_gravity="right"
android:layout_alignParentRight="true"
android:layout_alignBaseline="@+id/text1"
android:layout_width="40dp"
android:layout_alignRight="@+id/text4" />
<TextView
android:id="@+id/text4"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="64%"
android:layout_alignParentRight="true"
android:layout_alignBaseline="@+id/text2"
android:layout_width="40dp" />
</RelativeLayout>
Même problème ici, la partie droite n'aligne à droite correctement, et je dois utiliser une taille statique d'Android: layout_width pour le pousser à l'autre côté. Et si vous n'utilisez pas de taille statique, le texte commence à se couper les uns les autres.
Merci .. J'espérais éviter une Linearlayout supplémentaire, mais c'était la seule façon de fonctionner. – droidgren
Quel est le point dans l'enroulement de LinearLayout dans un RelativeLayout. LinearLayout est maintenant le seul enfant de RelativeLayout et le parent peut probablement être supprimé? –
@GlennBech: Il y a plus de widgets dans le 'RelativeLayout', et pas seulement dans' LinearLayout'. – Macarse