Can you center a Button in RelativeLayout?

前端 未结 11 1261
粉色の甜心
粉色の甜心 2020-12-12 13:35

I\'m trying to center a button in relative layout, is this possible? I\'ve tried the Gravity and Orientation functions but they don\'t do anything.

相关标签:
11条回答
  • 2020-12-12 14:13

    Use the attribute android:centerInParent="true" inside a view , when you want to center the view in Relative layout.

    <?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>
    
    0 讨论(0)
  • 2020-12-12 14:15

    Arcadia, just try the code below. There are several ways to get the result you're looking for, this is one of the easier ways.

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

    Setting the gravity of the RelativeLayout itself will affect all of the objects placed inside of it. In this case, it's just the button. You can use any of the gravity settings here, of course (e.g. center_horizontal, top, right, and so on).

    You could also use this code below:

    <?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>
    
    0 讨论(0)
  • 2020-12-12 14:18

    Summarized

    Adding:

    android:layout_centerInParent="true"
    

    just works on RelativeLayout, if one of the following attributes is also set for the view:

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

    which alignes the child view to the parent view. The "center" is based on the axis of the alignement you have chosen:

    left/right -> vertical

    top/bottom -> horizontal

    Setting the gravity of childs/content inside the view:

    android:gravity="center"
    

    is centering the child inside the parent view in any case, if there is no alignment set. Optional you can choose:

    <!-- 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"
    ...
    

    Then there is:

    android:layout_gravity="center"
    

    which is centering the view itself inside it's parent

    And at last you can add the following attribute to the parents view:

    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    
    0 讨论(0)
  • 2020-12-12 14:18

    you must have aligned it to left or right of parent view

    don't use any of these when using android:centerInParent="true" codes:-

    android:layout_alignParentLeft="true"

    android:layout_alignParentLeft="true"

    android:layout_alignRight=""

    etc.

    0 讨论(0)
  • 2020-12-12 14:19

    It's pretty simple, just use Android:CenterInParent="true" to center both in horizontal and vertical, or use Android:Horizontal="true" to center in horizontal and Android:Vertical="true"

    And make sure you write all this in RelaytiveLayout

    0 讨论(0)
提交回复
热议问题