Android从右到左的线性布局

时间:2013-09-26 08:36:56

标签: android android-layout android-linearlayout

我有一个线性布局,我想在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>

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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>

enter image description here