我在水平LinearLayout中有两个按钮。他们目前彼此相邻,最左边。我想将第二个按钮移动到LinearLayout的右端。 我在这些按钮上尝试了android:gravity,但这并没有改变它们的位置。 感谢
答案 0 :(得分:2)
使用LinearLayout
无法实现此目的
请改用RelativeLayout
,并将每个按钮相对于RelativeLayout
向右或向左放置。类似下面的例子:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button1"
android:layout_alignParentRight="true"
android:text="Button" />
</RelativeLayout>
答案 1 :(得分:2)
最简单的方法是使用RelativeLayout
。您可以在属性Button
的右侧提供您想要的alignParentRight="true"
。
<Button
...
android:layout_alignParentRight="true"/>
对于水平LinearLayout
,android:layout_graivty
(这是您想要的而不是android:gravity
)左右不会做任何事情,因为Views
是已经从右到左放置。
See this answer如果您不确定android:gravity
和android:layout_gravity
之间的差异,请{/ 3>}。
修改强>
根据完全您需要/想要的内容, 可以使用LinearLayout
执行此操作,但使用{可能仍然更容易和更灵活{1}}。无论如何,您可以使用RelativeLayout
来实现类似的功能并使用值。以下内容为左侧weight
,右侧为Button
。
Button
答案 2 :(得分:1)
尝试将左键的layout_gravity
设置为left
(或start
),将右键的layout_gravity
设置为right
(或end
)
问题是您目前正在使用gravity
指定对象如何在其自己的边界内在X轴和Y轴上定位其内容。
相反,您应该使用
的layout_gravity
儿童向其父母提供的标准重力常数。定义子视图在其封闭布局中在X轴和Y轴上的定位方式。
换句话说 - 您当前正在告诉按钮如何对齐他们的子视图,而不是告诉他们如何在父视图中对齐。
答案 3 :(得分:0)
您可以设置android:layout_weight='1'
并且两个按钮将平等地共享屏幕(并排)或者如果您想要它们之间的额外空间,您可以将每个按钮放置在线性布局中并设置{{ 1}}每个android:layout_gravity
和left
。
答案 4 :(得分:0)
添加RelativeLayout
并将值设置为layout_marginLeft
,layout_marginTop
等。
例如。
android:layout_marginLeft="32dp"
android:layout_marginTop="160dp"
答案 5 :(得分:0)
使 linearLayout 方向 Vertical 并设置按钮的重力 => center 并根据需要..