Ich verwende ein lineares Layout, um einen ziemlich hellen Startbildschirm anzuzeigen. Es hat 1 Schaltfläche, die horizontal und vertikal im Bildschirm zentriert werden soll. Unabhängig davon, was ich versuche, wird die Schaltfläche oben in der Mitte ausgerichtet. Ich habe das unten stehende XML 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>
layout_width
auf "wrap_content". Anschließendlayout_gravity
tat das, was es tun sollte!Antworten:
Wenn Sie ein Element in der Mitte des Bildschirms zentrieren möchten, verwenden Sie nicht a,
LinearLayout
da diese zum Anzeigen einer Reihe von Elementen in einer Reihe vorgesehen sind.Verwenden Sie
RelativeLayout
stattdessen ein.Also ersetzen:
für die entsprechende
RelativeLayout
Option:Ihre Layoutdatei sieht also folgendermaßen aus:
quelle
Mit einem LinearLayout zentrieren:
quelle
Haben Sie versucht,
android:gravity="center_vertical|center_horizontal"
innerhalb des Layouts und der Einstellungandroid:layout_weight="1"
im Bild zu definieren?quelle
android:weight="1"
den Knopf nicht einstellen , um ihn zu zentrieren.)Eine häufig verwendete Methode, die mit linearem Layout arbeitet, besteht darin, eine Eigenschaft für die Bildschaltfläche festzulegen
Sie können wählen, ob Sie jedes Objekt im linearen Layout nach links, mittig oder rechts ausrichten möchten. Beachten Sie, dass die obige Zeile genau die gleiche ist wie
quelle
Füge das hinzu
In LinearLayout.
quelle
android:gravity="center"
Wenn Sie verwenden
LinearLayout
, können Sie den Schwerpunkt hinzufügen:quelle
einfach damit
quelle
Sie können die verwenden
RelativeLayout
.quelle
Der obige Code funktioniert.
quelle
komplette und funktionierende Probe von meiner Maschine ...
quelle
Gemäß der Android-Dokumentation für XML-Attribute von Android: layout_gravity können wir dies problemlos tun :)
quelle
Setzen Sie auf true
android:layout_alignParentTop="true"
undandroid:layout_centerHorizontal="true"
in den Button wie folgt:quelle
Sie können diesen Code auch ausprobieren:
quelle
Verwenden Sie einfach (um es in die Mitte Ihres Layouts zu setzen)
und verwenden
Position ändern
quelle
Sie können auch die Breite des Linearlayout auf
wrap_content
und Verwendungandroid:layout_centerInParent
,android:layout_centerVertical="true"
:quelle
Das funktioniert bei mir.
quelle
Hast du das versucht?
quelle
verwenden
quelle
Es wäre einfacher, relative Layouts zu verwenden, aber für lineare Layouts zentriere ich normalerweise, indem ich sicherstelle, dass die Breite mit dem übergeordneten übereinstimmt:
und dann geben Sie einfach Ränder nach rechts und links entsprechend.
quelle