2010-09-20 16 views

Antwort

298

android:layout_centerHorizontal="true" 

Genau wie diese versuchen, es funktioniert für mich:

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

Das hat nicht funktioniert. – Arcadia

+23

Diese DID funktioniert für mich. Vielen Dank. –

+1

Arbeitete auch für mich ,,, warum markieren sie es nicht als Antwort .. – Naruto

86

Sie CENTER_IN_PARENT für relatives Layout verwenden können.

hinzufügen android:layout_centerInParent="true" zu Element, das Sie in der RelativeLayout

+2

Wo lege ich das hin? – Arcadia

+2

@josnidhin: das ist die richtige Antwort. – Ashwin

+0

Richtig;) Danke :) – androniennn

34

Arcadia zentrieren möchten, versuchen Sie einfach den Code unten. Es gibt mehrere Möglichkeiten, um 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> 

Die Einstellung der Relativität von RelativeLayout selbst wirkt sich auf alle darin platzierten Objekte aus. In diesem Fall ist es nur der Knopf. Sie können hier natürlich alle Einstellungen für die Schwerkraft verwenden (z. B. "center_horizontal", "top", "right" usw.).

Sie könnten auch diesen Code 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> 
+1

Danke. Wenn ich jedoch mehrere Tasten hätte und nur einen zentrieren wollte, wie würde ich das machen? Der erste Code würde alles innerhalb der übergeordneten relativen Anordnung zentrieren. Außerdem, wie könnte ich den Knopf an der Spitze der Reihe zentrieren? – Arcadia

+0

10 Verwenden Sie einfach das zweite Beispiel und fügen Sie nur centerInParent zu der Schaltfläche hinzu, die zentriert werden soll. Sie können auch "centerHorizontal" und "layout_alignParentTop" verwenden, um sie nach oben auszurichten und sie horizontal zu zentrieren. Was genau versuchen Sie zu erreichen, könnte ich ein besseres Beispiel geben. – kcoppock

+0

Ich beginne gerade meine Studien über Android-Entwicklung und versuche zu verstehen, wie man Dinge manipuliert, um das zu tun, was ich will. Grundsätzlich möchte ich die Pixel nicht ausrichten, da das Bild auf einem anderen Bildschirmtyp/Auflösung anders aussehen könnte. Wenn Sie jedoch den Schwerkraftbefehl verwenden, folgt alles ihm. Ich habe versucht, die Schwerkraft für einen Knopf zu deaktivieren, indem ich ignoreGravity benutzte, und es hat nicht funktioniert. Dieses Zeug ist sehr schwierig. – Arcadia

5

Es ist einfach, nicht, dass es zu irgendetwas ausrichten

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

1

jede Ausrichtung wie android Entfernen: layout_alignParentStart = "true "und Hinzufügen von centerInParent arbeitete für mich. Wenn die "align" in bleibt, wird das centerInParent nicht funktioniert

2

Um in einem der Android-Richtung Nutzung Zentrieren: layout_centerHorizontal = "true" oder Android: layout_centerVertical = "true" in dem Kind Layout

4

Verwenden Sie das Attribut android:centerInParent="true" in einer Ansicht, , wenn Sie die Ansicht in Relatives 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> 
+0

Es wird empfohlen, 'match_parent' anstelle von' fill_parent' zu verwenden. 'fill_parent' ist ab API 8 veraltet. – RediOne1

0

Sie müssen es ausgerichtet haben, nach links oder rechts der übergeordneten Ansicht

eine dieser nicht verwenden, wenn android:centerInParent="true" Codes: -

android:layout_alignParentLeft="true"

android:layout_alignParentLeft="true"

android:layout_alignRight=""

usw.

13

Verdichtete

Hinzufügen:

android:layout_centerInParent="true" 

nur auf RelativeLayout funktioniert, wenn eine der folgenden Eigenschaften auch für die Ansicht festgelegt 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" 

, die das Kind Blick zum Abgleich zur Elternansicht. Das "Zentrum" basiert auf der Achse der Ausrichtung Sie gewählt haben:

links/rechts -> vertikale

oben/unten -> horizontal

die Schwere der Childs Einstellung/Inhalt in der Ansicht:

Zentriert das Kind in der übergeordneten Ansicht in jedem Fall, 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 gibt es:

android:layout_gravity="center" 

die den Blick selbst im Inneren ist Zentrierung der Eltern

Und schließlich können Sie das folgende Attribut hinzufügen, um die Eltern anzuzeigen:

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

Es ist wirklich einfach. Versuchen Sie den folgenden Code:

<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

Nur Code-Antworten sind hier nicht willkommen. Versuchen Sie, weitere Details zu veröffentlichen, warum die obige Antwort funktioniert. :) – Vivz

+0

Danke für die Richtlinie. Ich bin neu hier drin. –

Verwandte Themen