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

时间:2010-09-20 01:46:26

标签: android layout

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

11 个答案:

答案 0 :(得分:343)

尝试

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>

答案 1 :(得分:97)

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

android:layout_centerInParent="true"添加到要在RelativeLayout

中居中的元素

答案 2 :(得分: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>

设置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>

答案 3 :(得分:20)

<强>汇总

添加:

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"

将子视图与父视图对齐。 “中心”基于您选择的对齐轴:

左/右 - &gt;垂直

顶部/底部 - &gt;水平

在视图中设置childs / content的重力:

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"

答案 4 :(得分: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>

答案 5 :(得分: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"/>

答案 6 :(得分:2)

在子布局中使用android:layout_centerHorizo​​ntal =“true”或android:layout_centerVertical =“true”的方向中心对齐

答案 7 :(得分:1)

删除任何对齐,例如android:layout_alignParentStart =“true”和 添加centerInParent为我工作。如果“对齐”保持在, centerInParent不起作用

答案 8 :(得分:1)

这真的很容易。请尝试下面的代码,

<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>

答案 9 :(得分:0)

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

使用android:centerInParent="true"代码时不要使用其中任何一项: -

android:layout_alignParentLeft="true"

android:layout_alignParentLeft="true"

android:layout_alignRight=""

等。

答案 10 :(得分:0)

这非常简单,只需使用Android:CenterInParent="true"既可以将水平和垂直居中,也可以使用Android:Horizontal="true"可以将水平和垂直居中

并确保将所有这些内容都写在RelaytiveLayout中