Edit: Ich habe bereits zwei umfassende Antworten in Bezug auf feste Margen erhalten. Während ich mich entschieden habe, feste Ränder anstelle von Gewichtsspannen zu verwenden, bleibt die ursprüngliche Frage offen.Zentrieren Sie ein LinearLayout und "Prozent" -Ränder
Ich versuche, das folgende Design in Android zu erhalten:
Eine zentrierte vertikale Liste von Sachen (Textviews, EditViews etc.), die als freigelassenen etwa 10% der horizontalen Raum verlässt/rechter Rand, mit Hintergrund.
Was ich versucht und hat nicht funktioniert/arbeitete teilweise:
- Linearlayout, vertikal, als Top-Level-Layout. Wenn die Schwerkraft auf "zentriert" eingestellt ist, ist der Hintergrund auf die Größe des Layouts beschränkt. Wie setzt man auf diese Weise auch prozentuale Ränder (Breiten)?
- LinearLayout auf RelativeLayout: Hintergrund funktioniert, horizontale Zentrierung funktioniert, Gewichte existieren nicht.
- LinearLayout auf LinearLayout: Hintergrund funktioniert, Gewichte arbeiten, horizontale Zentrierung verschiebt den gesamten verfügbaren Platz nach rechts.
(In den letzten beiden Fällen mein Eclipse-beklagt auch, dass eines des Layouts redundant ist.)
Ich habe keinen Code geschrieben, in Betracht gezogen zu haben, dass dies etwas von einer prinzipbedingten Frage. Was wäre der (beste) Weg, dies zu erreichen?
Vielen Dank.
XML an den letzten der Testfall entspricht:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:baselineAligned="false"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
android:weightSum="1.0"
android:background="#013c57" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.9"
android:layout_gravity="center"
android:orientation="vertical" >
<!-- Stuff -->
</LinearLayout>
</LinearLayout>
Können Sie bitte mit uns Ihre XML-Datei teilen? –