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 线性布局从右到左的主要内容,如果未能解决你的问题,请参考以下文章

如何从右到左显示 RadListView

Python中从右到左的语言

如何在 mfc 应用程序中支持从右到左打印

从左到右翻译布局

如何从右到左设计android.support.design.widget.NavigationView?

Android从右到左textview滑动动画