Zentrieren Sie eine Schaltfläche in einem linearen Layout

Lesezeit: 4 Minuten

Benutzer-Avatar
der Mann im Koffer

Ich verwende ein lineares Layout, um einen ziemlich hellen Anfangsbildschirm anzuzeigen. Es hat 1 Taste, die sowohl horizontal als auch vertikal auf dem Bildschirm zentriert werden soll. Aber egal, was ich versuche zu tun, die Schaltfläche wird oben mittig ausgerichtet. Ich habe das XML unten eingefügt, kann mich jemand in die richtige Richtung weisen?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageButton android:id="@+id/btnFindMe" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical|center_horizontal"
        android:background="@drawable/findme"></ImageButton>

</LinearLayout>

  • Was es für mich in einem LinearLayout mit horizontaler Ausrichtung behoben hat, war das Festlegen layout_width zu “wrap_content”. Anschließend die layout_gravity tat, was es tun sollte!

    – Irgendwer irgendwo

    28. November 2012 um 0:53 Uhr

  • Wenn Sie unbedingt LinearLayout verwenden müssen, sollte dies meiner Meinung nach funktionieren: stackoverflow.com/questions/18051472/…

    – Antonio

    26. Mai 2015 um 15:11 Uhr


Benutzer-Avatar
lancha90

Zentrieren mit einem LinearLayout:

<LinearLayout
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" >

    <ImageButton
        android:id="@+id/btnFindMe"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/findme" />
</LinearLayout>

  • LinearLayout ist einfacher und leichter im Vergleich zu RelativeLayout, sollte etwas schneller sein.

    – SurlyDre

    15. November 2013 um 3:22 Uhr

  • Ich habe layout_gravity anstelle von Gravity verwendet. Der Wechsel zu android:gravity=”center” hat dies für mich behoben. Anfängerfehler.

    – ackushiw

    20. Dezember 2015 um 1:39 Uhr

  • @ackushiw war auch mein Problem!

    – Deny

    11. Februar 2017 um 11:57 Uhr

  • Zumindest für mich hat das Attribut android:gravity=”center” LinearLayout den Zweck erfüllt. Danke, Bro!

    – die dreifackel

    27. April 2019 um 17:16 Uhr

Benutzer-Avatar
David Webb

Wenn Sie ein Element in der Mitte des Bildschirms zentrieren möchten, verwenden Sie kein a LinearLayout da diese dazu gedacht sind, mehrere Elemente hintereinander anzuzeigen.

Verwenden ein RelativeLayout stattdessen.

Also ersetzen:

android:layout_gravity="center_vertical|center_horizontal"

für das Relevante RelativeLayout Möglichkeit:

android:layout_centerInParent="true"

Ihre Layoutdatei sieht also so aus:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageButton android:id="@+id/btnFindMe" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/findme"></ImageButton>

</RelativeLayout>

  • Es gibt Fälle, in denen Sie ein LinearLayout verwenden und den Inhalt zentrieren müssen. Dies sollte nicht die akzeptierte Antwort sein. Es wäre besser vorzuschlagen, wenn möglich ein RelativeLayout zu verwenden, und wenn nicht wie in einem LinearLayout zentrieren.

    – SteveBot

    18. März 2015 um 0:16 Uhr

  • Ganz zu schweigen von der Tatsache, dass ein RelativeLayout aufgrund der Art und Weise, wie seine Abmessungen gemessen werden müssen, viel laufzeitintensiver ist, während ein LinearLayout super unkompliziert und viel effizienter ist.

    – Trevor Hart

    14. Juli 2017 um 19:39 Uhr

Benutzer-Avatar
Rui

Haben Sie versucht, zu definieren android:gravity="center_vertical|center_horizontal" innerhalb des Layouts und der Einstellung android:layout_weight="1" im bild?

  • Ich mag diese Option, mit der ich mi LinearLayout behalten kann! (Ich musste nicht einstellen android:weight="1" in der Schaltfläche, um es zu zentrieren.)

    – Sebastian

    2. Juli 2011 um 10:47 Uhr


  • android:gravity funktioniert bei mir nicht in einem horizontalen LinearLayout, aber android:layout_gravity funktioniert.

    – jfritz42

    13. März 2012 um 16:27 Uhr

Eine häufig verwendete Methode, die mit linearem Layout funktioniert, besteht darin, eine Eigenschaft für die Bildschaltfläche festzulegen

android:layout_gravity="center"

Sie können jedes Objekt im linearen Layout linksbündig, zentriert oder rechtsbündig ausrichten. Beachten Sie, dass die obige Zeile genau die gleiche ist wie

android:layout_gravity="center_vertical|center_horizontal"

Benutzer-Avatar
Tanmay Sahoo

Füge das hinzu

android:gravity="center"

Im LinearLayout.

  • sollte sein android:gravity="center"

    – Johannes Joe

    15. Januar 2017 um 14:51 Uhr

Benutzer-Avatar
Taku

Wenn du benutzt LinearLayout Sie können Schwerpunkt hinzufügen:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center">
            <Button
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            />
</LinearLayout>`

  • sollte sein android:gravity="center"

    – Johannes Joe

    15. Januar 2017 um 14:51 Uhr

Benutzer-Avatar
Javier

einfach damit

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:visibility="visible" 
        android:gravity="center"
        android:orientation="vertical" >

        <ProgressBar
            android:id="@+id/pbEndTrip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:gravity="center"
            android:text="Gettings" />
    </LinearLayout>

1351810cookie-checkZentrieren Sie eine Schaltfläche in einem linearen Layout

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy