Android 为什么视图不从右向左对齐?

Android 为什么视图不从右向左对齐?,android,android-layout,alignment,orientation,layout-gravity,Android,Android Layout,Alignment,Orientation,Layout Gravity,我有一个垂直布局的水平布局。 在我的水平布局中,我必须显示我想要显示的视图(微调器) 从右到左 上面的图片就是我现在看到的。底部是我所期望的。很简单 我一直在尝试更改所有属性。似乎什么都不管用。改变重力,布局重力 因为我愿意使用重量,所以我不能使用相对长度 我该如何解决这个问题? 有没有一种解决方案不会破坏XML的排列和顺序,将第一个控件放在第二个控件之后(我讨厌这样做) 是否有一些明显的我不知道或遗漏的东西? 先谢谢你 <LinearLayout android:layout_wid

我有一个垂直布局的水平布局。 在我的水平布局中,我必须显示我想要显示的视图(微调器) 从右到左

上面的图片就是我现在看到的。底部是我所期望的。很简单

我一直在尝试更改所有属性。似乎什么都不管用。改变重力,布局重力

因为我愿意使用重量,所以我不能使用相对长度

我该如何解决这个问题? 有没有一种解决方案不会破坏XML的排列和顺序,将第一个控件放在第二个控件之后(我讨厌这样做)

是否有一些明显的我不知道或遗漏的东西? 先谢谢你

<LinearLayout 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:id="@+id/tb3TxtPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_margin="20dp"
android:text="price"
android:textAppearance="?android:attr/textAppearanceMedium"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="right" 
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:orientation="horizontal">

    <Spinner
    android:id="@+id/tb3SprPriceStartLimit"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="40dp"
    android:layout_gravity="right"
    android:entries="@array/priceStartLimitArray" />


    <Spinner
    android:id="@+id/tb3SprPriceEndLimit"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="40dp"
    android:layout_gravity="right"
    android:entries="@array/priceEndLimitArray" />
</LinearLayout>

试试这个:

保持你想在右边的第一个。。。。然后留下一个<代码>重力仅用于对齐文本

<Spinner
    android:id="@+id/tb3SprPriceEndLimit"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="40dp"
    android:layout_gravity="right"
    android:entries="@array/priceEndLimitArray" />

<Spinner
    android:id="@+id/tb3SprPriceStartLimit"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="40dp"
    android:layout_gravity="right"
    android:entries="@array/priceStartLimitArray" />

只需交换两个
微调器的显示顺序即可

<LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_gravity="right" 
  android:layout_marginRight="20dp"
  android:layout_marginLeft="20dp"
  android:orientation="horizontal">
  <-- the 1 -->
  <Spinner
  android:id="@+id/tb3SprPriceStartLimit"
  android:layout_weight="1"
  android:layout_width="0dp"
  android:layout_height="40dp"
  android:entries="@array/priceStartLimitArray" />

  <-- the 2 -->
  <Spinner
  android:id="@+id/tb3SprPriceEndLimit"
  android:layout_weight="1"
  android:layout_width="0dp"
  android:layout_height="40dp"
  android:entries="@array/priceEndLimitArray" />
</LinearLayout>


此外,在
LinearLayout

中方向为水平时,设置
layout\u gravity=left
layout\u gravity=right
是没有用的。您能发布您期望的屏幕截图吗?对不起。我刚刚添加了图片。我想你的答案是最有可能的。我试过了。但是这两个微调器现在不见了,在屏幕上的任何地方都看不到。这意味着它们不可见吗?首先为微调器编写代码,需要在“右侧”,然后添加上述代码。我想我的答案不适用于你。
android:layout_toLeftOf
适用于相对布局而不是线性布局我也这么认为。消失的原因是宽度=0。我别无选择,只能使用它,因为我使用宽度让微调器占据相同的空间。