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

时间:2014-05-25 11:25:35

标签: android android-layout alignment orientation layout-gravity

我在垂直布局中有这个水平布局。 在我的水平布局中,我必须查看(旋转)我想要显示的内容 从右到左。

顶部图片是我现在所得到的。底部是我的期望。非常简单。

enter image description here 我一直在尝试改变所有属性。似乎没什么用。改变了引力,layout_gravity ......

因为我愿意使用体重,所以我不能使用RelativeLayouts。

我该如何解决这个问题? 是否有任何解决方案最终不会弄乱我的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>

2 个答案:

答案 0 :(得分:1)

只需交换它们出现的两个Spinner订单。

<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>

此外,如果layout_gravity=left中的方向是水平的,则设置layout_gravity=rightLinearLayout无效。

答案 1 :(得分:0)

试试这个:

首先保留你想要的权利....然后留下一个...... gravity仅用于加入文本

<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" />