Android 线性布局从右到左
Posted
技术标签:
【中文标题】Android 线性布局从右到左【英文标题】:Android linear layout from right to left 【发布时间】:2013-10-02 03:03:44 【问题描述】:我有一个线性布局,我想在 XML 文件中从右侧到左侧填充一个元素。从右向左填充的原因是%的舍入误差,因为我要匹配右侧的布局。
一个是分开的:55% - 15% - 15% - 15%
另一个是:49% - 2% - 34% - 15%
我想要的是正确的 15% 完全相同,因为现在它不一样了(可能有 1px 或 2px 的差异)。
我尝试了方向和重力,但没有得到想要的结果。
已编辑:
对不起,这是我的代码:
<LinearLayout
android:layout_
android:layout_
android:orientation="horizontal"
android:baselineAligned="false"
android:weightSum="100">
<RelativeLayout
android:id="@+id/leftSideDefaultHoldeTitleBar"
android:layout_
android:layout_
android:layout_weight="49"
android:background="@android:color/holo_green_dark">
</RelativeLayout>
<RelativeLayout
android:layout_
android:layout_
android:layout_weight="2"
android:background="@android:color/darker_gray">
</RelativeLayout>
<RelativeLayout
android:layout_
android:layout_
android:layout_weight="34"
android:background="@android:color/black">
</RelativeLayout>
<RelativeLayout
android:layout_
android:layout_
android:layout_weight="15"
android:background="@android:color/blue"
>
</RelativeLayout>
</LinearLayout>
其他布局与其他重量值相同,我将展位放置在同一个支架上,当我在它们之间切换时右侧有点错误。
【问题讨论】:
这将有助于查看添加 UI 元素的布局或代码。 首先发布您的xml
。我们会很高兴地纠正它!
【参考方案1】:
对 LinearLayout 使用 weightSum=100 并根据您指定的百分比为所有子视图设置权重。
【讨论】:
对主布局的所有子级使用 layout_weight 并根据您需要的百分比设置子级。例如,如果您在主布局中有两个布局 ser layout_weight = 0.5 ,那么两者都将在两个部分中平等地占据整个主布局。【参考方案2】:试试这个,我发现它完全一样。见附件快照
[<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:orientation="vertical"
android:padding="5dp" >
<LinearLayout
android:layout_
android:layout_
android:weightSum="100" >
<TextView
android:background="#f00"
android:layout_
android:layout_
android:layout_weight="55"
android:gravity="center"
android:text="55"
android:textSize="18sp" />
<TextView
android:background="#f00f"
android:layout_
android:layout_
android:layout_weight="15"
android:gravity="center"
android:text="15"
android:textSize="18sp" />
<TextView
android:background="#ff00ff"
android:layout_
android:layout_
android:layout_weight="15"
android:gravity="center"
android:text="15"
android:textSize="18sp" />
<TextView
android:background="#0f000f"
android:layout_
android:layout_
android:layout_weight="15"
android:gravity="center"
android:text="15"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_
android:layout_
android:layout_marginTop="5dp"
android:weightSum="100" >
<TextView
android:background="#f00"
android:layout_
android:layout_
android:layout_weight="49"
android:gravity="center"
android:text="55"
android:textSize="18sp" />
<TextView
android:background="#f00f"
android:layout_
android:layout_
android:layout_weight="2"
android:gravity="center"
android:text="15"
android:textSize="18sp" />
<TextView
android:background="#ff00ff"
android:layout_
android:layout_
android:layout_weight="34"
android:gravity="center"
android:text="15"
android:textSize="18sp" />
<TextView
android:background="#0f000f"
android:layout_
android:layout_
android:layout_weight="15"
android:gravity="center"
android:text="15"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
【讨论】:
我没有在模拟器上运行它,我在galaxy S2上运行并且不一样。而且由于所有自定义视图,我的布局都没有海图形 我试过了,它运行良好。您是否在设备上尝试过上述布局? 在布局中没有其他方法可以做到这一点。以上是关于Android 线性布局从右到左的主要内容,如果未能解决你的问题,请参考以下文章