线性布局中的视图与android:layout_weight属性没有获得相等的空间

时间:2015-05-27 13:00:23

标签: android android-layout android-linearlayout android-layout-weight

如主题标题中所述,我有3 TextView,我希望他们使用android:layout_weight属性共享整个屏幕的宽度,但这样做并没有得到所需的结果。

LinearLayout:

<TextView
    android:id="@+id/tour1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/back"
    android:clickable="true"
    android:gravity="center"
    android:paddingBottom="8dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="8dp"
    android:text="Tour \n disponibili  \n 21" />

<TextView
    android:id="@+id/tour2"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_toRightOf="@+id/tour1"
    android:layout_weight="1"
    android:background="@drawable/back"
    android:clickable="true"
    android:gravity="center"
    android:paddingBottom="8dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="8dp"
    android:text="Tour \n prenotabili  \n 16" />

<TextView
    android:id="@+id/tour3"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_toRightOf="@+id/tour2"
    android:layout_weight="1"
    android:background="@drawable/back"
    android:clickable="true"
    android:gravity="center"
    android:paddingBottom="8dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="8dp"
    android:text="Tour \n preferiti  \n 3" />

导致肖像:

Portrait

结果是景观:

Landscape

大象在哪里?

PS。从屏幕截图中可以看出,第二个问题出现了:为什么前2 TextView伸展高度?我该如何解决这种不可预测的行为?

2 个答案:

答案 0 :(得分:3)

替换

android:layout_width="wrap_content"

android:layout_width="match_parent"

LinearLayout

wrap_content表示&#39; ViewGroup will have the size which is big enough to enclose its content, while match_parent`会使其与其父级一样大。

答案 1 :(得分:1)

LinearLayout宽度设置为wrap_content。将其设置为match_parent,视图将延伸到整个屏幕宽度。