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