你能在相对布局中居中一个按钮吗?

我试图在相对布局中心一个按钮,这可能吗?我试过重力和定位功能,但是没用。

204186 次浏览

试试看

android:layout_centerHorizontal="true"

就像这样,对我很有效:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff0000">


<Button
android:id="@+id/btn_mybutton"
android:layout_height="wrap_content"
android:layout_width="124dip"
android:layout_marginTop="5dip"
android:layout_centerHorizontal="true"/>


</RelativeLayout>

可以使用 CENTER _ IN _ PARENT 进行相对布局。

android:layout_centerInParent="true"添加到要在 RelativeLayout 中居中的元素

阿卡迪亚,试试下面的代码。有几种方法可以得到你想要的结果,这是最简单的方法之一。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">


<Button
android:id="@+id/the_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Centered Button"/>
</RelativeLayout>

设置 RelativeLayout 本身的重力将影响放置在其中的所有对象。在这种情况下,它只是按钮。当然,您可以使用这里的任何重力设置(例如,居中水平、顶部、右侧等等)。

你也可以使用下面的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">


<Button
android:id="@+id/the_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Centered Button"
android:layout_centerInParent="true"/>
</RelativeLayout>

很简单,不要把它对准任何东西

<Button
android:id="@+id/the_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Centered Button"/>

删除任何对齐方式,如 android: layalignParentStart = “ true”和 添加居中父母为我工作。如果“校准”保持在, 内部父母不工作

若要在其中一个方向居中对齐,请在子布局中使用 android: lay _ center卧式 = “ true”或 android: outs _ center竖式 = “ true”

在视图中使用属性 android:centerInParent="true", 当要在相对布局中居中显示视图时。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NWE"
android:textSize="30dp"/>
</RelativeLayout>

您必须将其对齐到父视图的左侧或右侧

在使用 android:centerInParent="true"代码时,请不要使用以下任何代码:-

android:layout_alignParentLeft="true"

android:layout_alignParentLeft="true"

android:layout_alignRight=""

等等。

总结

添加:

android:layout_centerInParent="true"

只能在 RelativeLayout 上工作,如果视图还设置了以下属性之一:

android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"

它将子视图与父视图对齐。“中心”是基于你所选择的轴线:

左/右-> 垂直

顶部/底部-> 水平

将孩子/内容的严肃性置于视野之内:

android:gravity="center"

在任何情况下,如果没有对齐设置,则在父视图内以子视图为中心。你可以选择:

<!-- Axis to Center -->
android:gravity="center_horizontal"
android:gravity="center_vertical"


<!-- Alignment to set-->
android:gravity="top"
android:gravity="bottom"
android:gravity="left"
android:gravity="right"
android:gravity="fill"
...

还有一个问题:

android:layout_gravity="center"

它将视图本身置于父视图的中心

最后,您可以向父视图添加以下属性:

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

很简单,试试下面的代码,

<RelativeLayout
android:id="@+id/second_RL"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/first_RL"
android:background="@android:color/holo_blue_bright"
android:gravity="center">


<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />


</RelativeLayout>

它非常简单,只需使用 Android:CenterInParent="true"在水平和垂直两个中心,或者使用 Android:Horizontal="true"在水平和 Android:Vertical="true"中心

并且确保你在 RelaytiveLayout 中写下所有这些