你能在RelativeLayout中居一个按钮吗?

Arc*_*dia 163 layout android

我试图在相对布局中居中按钮,这可能吗?我尝试了重力和方向功能,但它们没有做任何事情.

Sha*_*God 352

尝试

android:layout_centerHorizontal="true"
Run Code Online (Sandbox Code Playgroud)

正是这样,它对我有用:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 如果你的宽度有match_parent,我就无法工作. (5认同)
  • 如果你有宽度的match_parent,它已经水平居中. (2认同)

Jos*_*hin 101

您可以使用CENTER_IN_PARENT进行相对布局.

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

  • 我把它放在哪里? (2认同)

kco*_*ock 35

阿卡迪亚,只需尝试下面的代码.有几种方法可以获得您正在寻找的结果,这是一种更简单的方法.

<?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>
Run Code Online (Sandbox Code Playgroud)

设置RelativeLayout本身的重力将影响放置在其中的所有对象.在这种情况下,它只是按钮.当然,您可以使用此处的任何重力设置(例如center_horizo​​ntal,top,right等).

您也可以使用以下代码:

<?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>
Run Code Online (Sandbox Code Playgroud)


Spe*_*ius 21

总结

添加:

android:layout_centerInParent="true"
Run Code Online (Sandbox Code Playgroud)

只适用于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"
Run Code Online (Sandbox Code Playgroud)

将子视图与父视图对齐."中心"基于您选择的对齐轴:

左/右 - >垂直

顶部/底部 - >水平

设置视图中子项/内容的严重性:

android:gravity="center"
Run Code Online (Sandbox Code Playgroud)

如果没有对齐集,则在任何情况下都将子视图放在父视图中.可选您可以选择:

<!-- 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"
...
Run Code Online (Sandbox Code Playgroud)

然后有:

android:layout_gravity="center"
Run Code Online (Sandbox Code Playgroud)

它将视图本身置于其父级内部

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

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
Run Code Online (Sandbox Code Playgroud)


Kar*_*KPN 7

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>
Run Code Online (Sandbox Code Playgroud)


She*_*han 5

它很容易,不要与任何东西对齐

<Button
        android:id="@+id/the_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true"
        android:text="Centered Button"/>
Run Code Online (Sandbox Code Playgroud)