1

我有一个线性布局,我想在 XML 文件中从右侧到左侧填充一个元素。从右向左填充的原因是%的舍入误差,因为我想匹配右侧的布局。

一个是分开的:55% - 15% - 15% - 15%

另一个是:49% - 2% - 34% - 15%

我想要的是正确的 15% 是完全相同的,因为现在它不一样了(可能是 1px 或 2px 的差异)。

我尝试了方向和重力,但没有得到想要的结果。

编辑:

对不起,这是我的代码:

<LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:baselineAligned="false"
        android:weightSum="100">
        <RelativeLayout 
             android:id="@+id/leftSideDefaultHoldeTitleBar"
             android:layout_width="0px"
             android:layout_height="match_parent"
             android:layout_weight="49"
             android:background="@android:color/holo_green_dark">
         </RelativeLayout>
         <RelativeLayout 
            android:layout_width="0px"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:background="@android:color/darker_gray">

        </RelativeLayout>
        <RelativeLayout 
            android:layout_width="0px"
            android:layout_height="match_parent"
            android:layout_weight="34"
            android:background="@android:color/black">

        </RelativeLayout>
        <RelativeLayout
              android:layout_width="0px"
              android:layout_height="match_parent"
              android:layout_weight="15"
              android:background="@android:color/blue"
             >
        </RelativeLayout>
    </LinearLayout>

其他布局与其他重量值相同,我将展位放置在同一个支架上,当我在它们之间切换时右侧有点错误。

4

2 回答 2

1

试试这个,我发现它完全一样。见附件快照

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

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:weightSum="100" >

        <TextView
            android:background="#f00"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="55"
            android:gravity="center"
            android:text="55"
            android:textSize="18sp" />

        <TextView
            android:background="#f00f"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="15"
            android:gravity="center"
            android:text="15"
            android:textSize="18sp" />

        <TextView
            android:background="#ff00ff"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="15"
            android:gravity="center"
            android:text="15"
            android:textSize="18sp" />

        <TextView
            android:background="#0f000f"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="15"
            android:gravity="center"
            android:text="15"
            android:textSize="18sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:layout_marginTop="5dp"
        android:weightSum="100" >

        <TextView
            android:background="#f00"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="49"
            android:gravity="center"
            android:text="55"
            android:textSize="18sp" />

        <TextView
             android:background="#f00f"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:gravity="center"
            android:text="15"
            android:textSize="18sp" />

        <TextView
            android:background="#ff00ff"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="34"
            android:gravity="center"
            android:text="15"
            android:textSize="18sp" />

        <TextView
             android:background="#0f000f"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="15"
            android:gravity="center"
            android:text="15"
            android:textSize="18sp" />
    </LinearLayout>

</LinearLayout>

在此处输入图像描述

于 2013-09-26T09:01:02.870 回答
1

对 LinearLayout 使用 weightSum=100 并根据您指定的百分比为所有子视图设置权​​重。

于 2013-09-26T08:55:09.097 回答