it-swarm.com.de

Können Sie einen Button in RelativeLayout zentrieren?

Ich versuche, eine Schaltfläche im relativen Layout zu zentrieren. Ist dies möglich? Ich habe die Schwerkraft- und Orientierungsfunktionen ausprobiert, aber sie tun nichts.

153
Arcadia

Versuchen

Android:layout_centerHorizontal="true"

Genau so funktioniert es bei mir:

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

Sie können CENTER_IN_PARENT für das relative Layout verwenden.

Fügen Sie Android:layout_centerInParent="true" zu dem Element hinzu, das Sie im RelativeLayout zentrieren möchten

94
Josnidhin

Arcadia, versuche einfach den Code unten. Es gibt mehrere Möglichkeiten, das gewünschte Ergebnis zu erhalten. Dies ist eine der einfacheren Möglichkeiten.

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

Das Festlegen der Schwerkraft von RelativeLayout selbst wirkt sich auf alle darin befindlichen Objekte aus. In diesem Fall ist es nur die Schaltfläche. Sie können hier natürlich jede der Schwerkrafteinstellungen verwenden (z. B. center_horizontal, top, right usw.). 

Sie können diesen Code auch unten verwenden:

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

zusammengefasst

Hinzufügen:

Android:layout_centerInParent="true"

funktioniert nur bei RelativeLayout, wenn für die Ansicht auch eines der folgenden Attribute gesetzt ist:

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

dadurch wird die untergeordnete Ansicht an der übergeordneten Ansicht ausgerichtet. Die "Mitte" basiert auf der Achse der von Ihnen gewählten Ausrichtung: 

links/rechts -> vertikal

oben/unten -> horizontal

Festlegen der Schwerkraft von Childs/Inhalten in der Ansicht:

Android:gravity="center"

in jedem Fall wird das untergeordnete Element in der übergeordneten Ansicht zentriert, wenn keine Ausrichtung festgelegt ist. Optional können Sie wählen:

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

Dann ist da:

Android:layout_gravity="center"

welche die Ansicht selbst in ihrem übergeordneten Element zentriert

Zum Schluss können Sie der Elternansicht folgendes Attribut hinzufügen:

Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"
17
Code.IT

Verwenden Sie das Attribut Android:centerInParent="true" innerhalb einer Ansicht , Wenn Sie die Ansicht im relativen Layout zentrieren möchten.

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

Es ist einfach, es an nichts auszurichten

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

5
Sheychan

Um die Ausrichtung in einer der Richtungen zu zentrieren, verwenden Sie Android: layout_centerHorizontal = "true" oder Android: layout_centerVertical = "true" im untergeordneten Layout

2
karma

Es ist wirklich leicht. Versuchen Sie den Code unten,

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

Entfernen von Ausrichtungen wie Android: layout_alignParentStart = "true" und Hinzufügen von centerInParent hat für mich funktioniert. Wenn das "Ausrichten" in bleibt, funktioniert das CenterInParent nicht

1
al881

sie müssen es links oder rechts der übergeordneten Ansicht ausgerichtet haben

verwenden Sie keine dieser Codes, wenn Sie Android:centerInParent="true"-Codes verwenden

Android:layout_alignParentLeft="true" 

Android:layout_alignParentLeft="true"

Android:layout_alignRight=""

usw. 

0
Divy sindhu