Ich habe den folgenden Code, wie mache ich es so, dass die 3 Schaltflächen unten sind?
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:gravity="center"
android:text="@string/observer"
android:textAppearance="?android:attr/textAppearanceLarge"
tools:context=".asdf"
android:weight="1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="145dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center"
android:text="1" />
<Button
android:id="@+id/button2"
style="?android:attr/buttonStyleSmall"
android:layout_width="145dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center"
android:text="2" />
<Button
android:id="@+id/button3"
style="?android:attr/buttonStyleSmall"
android:layout_width="145dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center"
android:text="3" />
</LinearLayout>
android
xml
android-layout
button
android-linearlayout
das tiefe Feld
quelle
quelle
android:weight="1"
du meintest wahrscheinlichandroid:layout_weight="1"
. Dies ist jedoch nicht Ihr Problem.Antworten:
Sie müssen vier Dinge sicherstellen:
LinearLayout
hatlayout_height="match_parent"
LinearLayout
hatlayout_weight="1"
undlayout_height="0dp"
TextView
hatlayout_weight="0"
LinearLayout: android:gravity="center|bottom"
Beachten Sie, dass
fill_parent
dies nicht bedeutet, dass Sie den gesamten verfügbaren Speicherplatz belegen müssen. Wenn Sie jedochlayout_height="0dp"
mit verwendenlayout_weight="1"
, nimmt eine Ansicht den gesamten verfügbaren Speicherplatz ein ( mit "fill_parent" kann kein korrektes Layout abgerufen werden ).Hier ist ein Code, den ich schnell geschrieben habe und der zwei LinearLayouts ähnlich wie Ihr Code verwendet.
Das Ergebnis sieht ungefähr so aus:
quelle
layout_weight="0"
oder was es tatsächlich tut beschreiben?Sie können a verwenden
RelativeLayout
und es unten mit ausrichtenandroid:layout_alignParentBottom="true"
quelle
layout_weight="1"
. Damit nimmt Ihr LinearLayout die auf dem Bildschirm verbleibende Höhe ein. Jetzt können Sie die Schwerkraft Ihrer Tasten auf den Boden einstellen.Erstellen Sie ein relatives Layout und erstellen Sie innerhalb dieses Layouts Ihre Schaltfläche mit dieser Zeile
quelle
android:layout_centerHorizontal="true"
und horizontales Zentrieren ist dies eine großartige Lösung.Erstellen Sie zuerst den Dateinamen, indem Sie
footer.xml
diesen Code einfügen.Erstellen Sie dann die Datei header.xml und fügen Sie diesen Code ein:
und dann in deine
main_activity.xml
und füge diesen Code ein: -Happy Coding :)
quelle
Sie können dies tun, indem Sie ein Rahmenlayout als übergeordnetes Layout verwenden und dann ein lineares Layout darin einfügen. Hier ist ein Beispiel:
quelle
quelle
Fügen Sie einfach layout_weight = "1" zu Ihrem linearLayout hinzu, das Schaltflächen enthält.
Edit: - lass es mich einfach machen
Folgen Sie etwas wie unten, der Name des Tags ist möglicherweise nicht korrekt, es ist nur eine Idee
quelle
LL1
Element als Abstandshalter verwendest, damit alles als nächstes unten ist? Ziemlich ordentlicher Trick.In
android:windowSoftInputMode="adjustPan"
manifestieren - in der entsprechenden Aktivität:quelle
Sie können Ihre Schaltflächen in einem RelativeLayout bündeln, auch wenn Ihr übergeordnetes Layout linear ist. Stellen Sie sicher, dass das äußerste übergeordnete Element das Attribut android: layout_height auf match_parent gesetzt hat . Und in diesem Button-Tag fügen Sie 'android: alignParentBottom = "True" hinzu.'
quelle