Android: как заставить выровненные по левому краю предметы обернуть, а не выровненные по правому краю? - PullRequest
0 голосов
/ 02 февраля 2012

это макет, который у меня есть:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:minHeight="?android:attr/listPreferredItemHeight">
    <LinearLayout
        android:orientation="vertical"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content">
        <TextView
            android:id="@+id/customer_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:paddingLeft="4dip"/>
        <TextView
            android:id="@+id/ticket_number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="14sp"
            android:paddingLeft="6dip"/>
    </LinearLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:gravity="right">
        <TextView
            android:id="@+id/total"
            android:gravity="right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:paddingRight="6dip"/>
        <TextView
            android:id="@+id/date"
            android:gravity="right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="14sp"
            android:paddingRight="6dip"/>
    </LinearLayout>
</LinearLayout>

, который создает элементы списка, которые выглядят следующим образом:

enter image description here

и, как вы видите, это немного уродливо. Я хотел бы, чтобы верхний синий прямоугольник был перенесен, если верхний правый прямоугольник красного цвета, а нижний ряд полностью независим от выравнивания вверх, так что дата вообще не переносится, независимо от того, как выглядит верхний ряд. , Каков наилучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Используйте TableLayout и задайте для него shrinkColumns="0" и укажите имя клиента / тикет # в столбце 0. Вы также можете установить strechColums для тех, которые вы хотите расширить, чтобы соответствовать, поэтому, вероятно, столбец 1, чтобы развернуть столбец для дат.

Другой вариант - не помещать их в вертикальные линейные макеты, а вместо этого создавать горизонтальные для каждого ряда.

0 голосов
/ 02 февраля 2012

реализация:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:shrinkColumns="0"
        android:stretchColumns="1"
        android:minHeight="?android:attr/listPreferredItemHeight">
    <TableRow>
        <TextView
            android:id="@+id/customer_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0"
            android:layout_span="2"
            android:textSize="18sp"
            android:paddingLeft="4dip"/>
        <TextView
            android:id="@+id/total"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:gravity="right"
            android:layout_gravity="right"
            android:textSize="18sp"
            android:paddingRight="6dip"/>
    </TableRow>
    <TableRow>
        <TextView
            android:id="@+id/ticket_number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0"
            android:textSize="14sp"
            android:paddingLeft="6dip"/>
        <TextView
            android:id="@+id/date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:layout_span="2"
            android:layout_gravity="right"
            android:gravity="right"
            android:textSize="14sp"
            android:paddingRight="6dip"/>
    </TableRow>
</TableLayout>

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...