android:layout_weight for View的行为与预期相反

时间:2013-10-18 10:39:12

标签: android android-layout android-linearlayout

我正在尝试在LinearLayout中分配权重。 虽然它适用于ButtonView-s,但它与简单的View相反:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#FF0000" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:background="#00FF00" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:background="#0000FF" />

</LinearLayout>

enter image description here

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#FF0000" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:background="#00FF00" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:background="#0000FF" />

</LinearLayout>

enter image description here

ButtonView的详细实现使其正常工作。 但是,在View中应该实现什么(以及如何)以与LinearLayout行为保持一致? 非常感谢。

2 个答案:

答案 0 :(得分:0)

你能否尝试用“FrameLayout”取代“View”我不认为View会被用作持有者

答案 1 :(得分:0)

在被同样的问题感到沮丧之后,我最终使用了没有文字的TextView

我只在 Eclipse的图形布局模式中看到了这个问题。在我的Galaxy S2上,该应用程序按预期工作。

使用原始“视图”的layout_weight会产生非常奇怪的效果。

另一种解决方法是将layout_height的{​​{1}}从View更改为"0dp"。我不知道为什么要修复它,但我猜一些与零相关的深层魔法(即一个错误,也许是一个神奇的绦虫)。