Android - странное поведение TextView - PullRequest
0 голосов
/ 05 марта 2012

Я немного озадачен, сейчас я проектирую пользовательский интерфейс Activity, и два виджета TextView в упомянутом пользовательском интерфейсе ведут себя немного странно.

Я установил фон на android:background="#CCCCCC", чтобы было легче наблюдать за поведением, но со временем он будет удален, когда я получу вид, к которому стремлюсь.

Когда оба параметра TextView пусты, поведение, которое я ожидаю от моего пользовательского интерфейса:

enter image description here

Но когда TextView заполнены строками разной длины, ширина изменяется:

enter image description here

Вот код, прикрепленный к строке моего пользовательского интерфейса.

        <TableRow android:weightSum="2" >
            <TextView
                android:id="@+id/tvDate"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="#CCCCCC"
                android:gravity="center_vertical|center_horizontal"
                android:padding="4dp"
                android:textColor="#000000" />

            <View
                android:layout_width="8dp"
                android:layout_height="fill_parent" />

            <TextView
                android:id="@+id/tvTime"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="#CCCCCC"
                android:gravity="center_vertical|center_horizontal"
                android:padding="4dp"
                android:textColor="#000000" />
        </TableRow>

До сих пор я пытался изменить параметр android:layout_width на множество значений с различными комбинациями android:padding и android:layout_weight. Но ничто не дало мне желаемого эффекта (то есть, чтобы два TextView занимали одинаковое количество места).

Я далеко не эксперт по XML на Android, поэтому любые указатели были бы очень благодарны.

1 Ответ

2 голосов
/ 05 марта 2012

Я бы предложил использовать LinearLayout.

<LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:weightSum="1.0"
     android:orientation="horizontal">
<TextView
     android:id="@+id/tvDate"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="0.5"
     android:background="#CCCCCC"
     android:gravity="center_vertical|center_horizontal"
     android:paddingRight="4dp"
     android:textColor="#000000" />
<TextView
     android:id="@+id/tvTime"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="0.5"
     android:background="#CCCCCC"
     android:gravity="center_vertical|center_horizontal"
     android:paddingLeft="4dp"
     android:textColor="#000000" />
</LinearLayout>

<LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:weightSum="1.0"
     android:orientation="horizontal">
<Button
     android:id="@+id/buttonDate"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="0.5"
     android:gravity="center_vertical|center_horizontal"
     android:paddingRight="4dp"
     android:text="Pick Date" />
<Button
     android:id="@+id/buttonTime"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="0.5"
     android:gravity="center_vertical|center_horizontal"
     android:paddingLeft="4dp"
     android:text="Pick Time" />
</LinearLayout>
...