3 Stimmen

Wie kann ich 2 Reihen von Schaltflächen in der Android layout.xml-Datei erstellen?

Ich versuche, 2 Reihen von Schaltflächen in der Android layout.xml-Datei zu erstellen. Die erste Reihe ist linksbündig, die zweite Reihe ist mittig ausgerichtet.

So habe ich es gemacht, aber ich habe am Ende nur 1 Reihe von Knöpfen. Können Sie mir bitte sagen, was ich falsch mache?

enter code here
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content"
android:layout_height="fill_parent">
 <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:layout_gravity="bottom|left"
        >
         <Button 
          android:id="@+id/btn1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
        </LinearLayout>
     <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:layout_gravity="bottom|center"
        >
         <Button 
          android:id="@+id/btn2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
       <Button 
          android:id="@+id/btn3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
        </LinearLayout>
</FrameLayout>
</pre>

5voto

reflog Punkte 7486

FrameLayout ist für diese Aufgabe falsch. Verwenden Sie LinearLayout wie folgt:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="fill_parent">
 <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:layout_gravity="bottom|left"
        >
         <Button
          android:id="@+id/btn1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
        </LinearLayout>
     <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:layout_gravity="bottom|center"
        >
         <Button
          android:id="@+id/btn2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
       <Button
          android:id="@+id/btn3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
        </LinearLayout>
</LinearLayout>

Eine Erklärung, wofür FrameLayout da ist, finden Sie hier: http://developer.Android.com/reference/Android/widget/FrameLayout.html

2voto

davidcesarino Punkte 15801

Ich würde empfehlen, LinearLayouts nicht auf diese Weise zu verschachteln. Es ist nicht produktiv, sehr ineffizient und behindert die Fähigkeit von Android-Layouts, in einigen Fällen und UI Änderungen zu erweitern.

Und außerdem ist es sehr CPU-intensiv! Tun Sie es nicht und lesen Sie dies:

http://developer.Android.com/training/improving-layouts/optimizing-layout.html

2voto

Ramesh Yankati Punkte 1175

Sie können Tablelayout für die Anzeige von Schaltflächen in Form von Zeilen verwenden.

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content" 
      android:id="@+id/root"
      android:stretchColumns="*"
      android:background="#000000">
  <TableRow android:layout_margin="0dip"
         android:id="@+id/first_row">
    <Button android:id="@+id/button01" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
    <Button android:id="@+id/button02" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
    <Button android:id="@+id/button03" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
    <Button android:id="@+id/button04" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
    <Button android:id="@+id/button05" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
  </TableRow>
</TableLayout>

0voto

Erik B Punkte 2790

Sie können auch nur ein RelativeLayout anstelle aller Ihrer Layouts verwenden. Ich habe viele Berichte gelesen, dass RelativeLayout weniger Ressourcen verbraucht als LinearLayout.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X