Ширина ViewFlipper переносит его содержимое, а fill_parent не работает

1

Вот мой макет XML:

<?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="fill_parent">
  <TableLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="true">
    <TableRow
      android:background="#FF0000">
      <ViewFlipper
        android:id="@+id/viewer_something"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout
          android:id="@+id/view1"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:background="#CCCCCC">
          <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="button one" />
        </LinearLayout>
        <LinearLayout
          android:id="@+id/view2"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:background="#FFFFFF">
          <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="button two" />
        </LinearLayout>
      </ViewFlipper>
        </TableRow>
        <TableRow
          android:background="#FF0000">
          <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button three" />
        </TableRow>
      </TableLayout>
    </LinearLayout>

Короче говоря, у меня есть ViewFlipper внутри TableRow. ViewFlipper уменьшает размер его содержимого, хотя все элементы имеют значение fill_parent. На моем скриншоте ниже у ViewFlipper есть серый фон, а на TableRows есть красный фон.

Изображение 174551

Теги:
layout
viewflipper
fill-parent

1 ответ

2
Лучший ответ

Настройка android:layout_weight="1" на вашем ViewFlipper будет работать.

  • 0
    Да, в самом деле. Я не понимаю, почему это сработало, но сработало. Вы можете объяснить?
  • 1
    Скажем, у вас есть родительское представление с различными дочерними представлениями. Если вы установите для каждого дочернего представления значение wrap_content, а затем укажете вес макета, каждое представление будет расширять заполнение оставшегося пробела в пропорции его веса к общему весу. Таким образом, если у вас есть только одно представление (ViewFlipper) внутри родительского представления (LinearLayout), установка веса макета заставит его заполнить оставшуюся часть белого пространства. Вот почему вес макета работает; Что касается того, почему fill_parent по ширине не работал в первую очередь, я не совсем уверен, но это, вероятно, проблема с измерением видов, которые еще не были нарисованы.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню