Je veux avoir deux TextView
éléments apparaissent côte à côte (dans un élément de liste), celui qui est aligné à gauche, un à droite. Quelque chose comme:
|<TextView> <TextView>|
( |
représentent l'écran que les extrémités)
Cependant, l' TextView
sur la gauche peut avoir un contenu qui est trop long pour tenir sur l'écran. Dans ce cas, je veux l'avoir ellipsize mais encore de montrer l'ensemble du droit TextView
. Quelque chose comme:
|This is a lot of conte...<TextView>|
J'ai eu de nombreuses tentatives à ce, à l'aide d' LinearLayout
et RelativeLayout
, et la seule solution que j'ai est d'utiliser un RelativeLayout
et de mettre un marginRight
sur le gauche TextView
assez grande pour effacer le droit TextView
. Comme vous pouvez l'imaginer, cependant, ce n'est pas optimal.
Existe-il d'autres solutions?
Final, LinearLayout
solution:
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal"
>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:inputType="text"
/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="0"
android:layout_gravity="right"
android:inputType="text"
/>
</LinearLayout>
Vieux, TableLayout
solution:
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:shrinkColumns="0"
>
<TableRow>
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
/>
<TextView android:id="@+id/date"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="none"
android:gravity="right"
/>
</TableRow>
</TableLayout>