我有一个线性布局,我想在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>
其他布局与其他重量值相同,我将展位放在同一个支架上,当我在它们之间切换时,右侧有点误。
答案 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>