0

如果我有 2 个 LinearLayouts 拆分 %50/%50 一切都很好。权重是 1 和 1。只要我在顶部 LinearLayout 中添加一个 TextView,它就会拉伸该布局。wrap_content当涉及到权重时,我应该按照文档中所说的那样使用。

如您所见,红色和绿色应均匀分割,灰色背景上的文本应位于红色框内。这是代码:

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#ff0000"
>
 <TextView
 android:text="@string/hello"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:background="#cccccc"
 android:textColor="#000000"/>      
</LinearLayout>

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#00ff00"
>
</LinearLayout>    

现在,如果我按如下方式切换到“填充父级”,它实际上可以工作,但会产生另一个问题。这是代码(到目前为止很好):

 <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#ff0000"
    >
     <TextView
     android:text="@string/hello"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background="#cccccc"
     android:textColor="#000000"/>      
    </LinearLayout>

 <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#00ff00"
    >
    </LinearLayout>

所以看上面我们被迫使用fill_parent,我们会认为我们解决了问题,但如果我们正在使用这就是问题fill_parent(我拿出 TextView 只是为了显示问题,TextView 无论如何都不会让问题消失) :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

 <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="3"
    android:background="#ff0000"
    >
    </LinearLayout>


 <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="2"
    android:background="#00ff00"
    >
    </LinearLayout> 
</LinearLayout>

如您所见,我分配了权重 3(顶部红色)和 2(底部绿色),但实际发生的是它们被翻转:红色变为 2,底部变为 3。只需测量像素也可以看到。

以下是 3 个代码的结果:

为了清楚起见,每次布局都包含在这个(顶部布局)中:

android:layout_width="fill_parent"
android:layout_height="fill_parent"

使用 XMLversion="1.0" encoding="utf-8"和适当的命名空间。

4

2 回答 2

1

合并的子视图权重应加起来为 1 ..... 例如。.3、.3、.4 = 1 或 100%

于 2010-12-19T02:20:59.227 回答
0

尝试将子视图添加到底部布局。

于 2010-08-21T03:13:12.120 回答