我有一个LinearLayout,它只包含一个按钮。我希望此按钮垂直居中并与右侧对齐。我尝试了很多方法,但我无法使这个按钮垂直居中。它始终与顶部对齐。我也尝试在RelativeLayout中放一个按钮,按钮也不能垂直居中。
XML如下。这个布局有什么问题吗?感谢。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#E8E3E4">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="More"
android:layout_gravity="right" />
</LinearLayout>
将android:layout_gravity =“right”更改为android:layout_gravity =“right | center_vertical”并未在我的问题中解决问题。
答案 0 :(得分:19)
你用文字说你希望它垂直居中,但你没有在 XML 中说过你希望它垂直居中。您需要调整android:layout_gravity
属性以同时指定right
和center_vertical
。
但是,我建议你回到RelativeLayout
。使用android:layout_centerVertical="true"
和android:layout_alignParentRight="true"
使按钮垂直居中并对齐。
另外,请记住,您当前的LinearLayout
有android:layout_height="wrap_content"
,这意味着内部没有任何内容。如果您希望居中具有任何意义,则需要容器具有比其内容更多的空间(例如,fill_parent
)。
答案 1 :(得分:3)
此代码将按钮置于垂直中心和右侧屏幕
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_vertical">
<Button
android:id="@+id/btnClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="Click Me" />
</LinearLayout>
答案 2 :(得分:0)
尝试将android:gravity =“center”添加到LinearLayout。我记得在某个地方读过那可能有用的技巧。