2011-01-17 4 views
1

So wie folgt aussehen Ich versuche, mein Layout zu erhalten:Android Layout Ausrichtung gibt

| button  text  button |

Damit der Text zwischen meinen beiden Tasten zentriert ist. Ich versuchte zunächst LinearLayouts und layout_gravity-Tags verwenden, aber das würde mich so etwas wie:

|  buttontextbutton  |

und jetzt habe ich ein relativ Layout mit alignParentLeft/Recht und centerInParent Tags aber das Layout sieht nun wie

| button text buttonnnnnnnnnnnnn |

Gibt es eine Möglichkeit, mein Layout mit Text zu verändern, der die Länge ändert?

Danke, Jake

Antwort

3

eine lineare Layout mit einer horizontalen Ausrichtung Einstellung verwenden. Entfernen Sie alle Einstellungen für Schwerkraft/Ausrichtung. Als nächstes verwenden Sie die Zeile

android:layout_weight="1" 

in beiden Schaltflächen und der Textansicht. Das sollte dir geben, was du willst.

Edit: Sie fragte, wie es funktioniert. Dies ist aus dem developer doc

Linearlayout unterstützt auch ein Gewicht auf einzelne Kinder zuweisen. Dieses Attribut weist einer Ansicht einen "Wichtigkeit" Wert zu und ermöglicht es zu erweitern, um beliebiges verbleibendes Leerzeichen in der übergeordneten Ansicht zu füllen. Untergeordnete Ansichten können einen ganzzahligen Gewichtungswert angeben, und dann alle verbleibenden Speicherplatz in der Ansicht Gruppe wird den Kindern im Anteil ihres deklarierten Gewicht zugeordnet. Standardgewicht ist Null. Zum Beispiel , wenn es drei Textfelder gibt und zwei von ihnen ein Gewicht von 1 deklarieren, während das andere kein Gewicht (0) gegeben wird, wird das dritte Textfeld ohne Gewicht wachsen und wird nur den Bereich belegen erforderlich durch seinen Inhalt. Die anderen beiden werden gleichmäßig erweitert, um den Raum zu füllen, nachdem alle drei Kästchen gemessen wurden. Wenn die dritte Box dann ein Gewicht von 2 (anstelle von 0) gegeben wird, dann wird es nun "mehr wichtig" als beide anderen, so dass es erhält die Hälfte der gesamten verbleibenden Speicherplatz, während der ersten beiden teilen der Rest gleich.

+0

Wow ..... es ist wie Magie.Wahrscheinlich dehnt das nur meine ImageButtons. – jakehschwartz

+0

Und ich denke, es wäre hilfreich zu wissen, wie das funktioniert, da ich es wahrscheinlich in der Zukunft verwenden möchte. – jakehschwartz

+0

aktualisiert mit einem Verweis, um zu helfen, Ihre Frage zu beantworten. – user432209

0

Sie sollten dies mit einem LinearLayout einfach gut tun können. Versuchen Sie dies:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    > 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button 1" 
     /> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="TextView Centered" 
     android:gravity="center" 
     android:layout_weight="1" 
     /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button 2" 
     /> 
</LinearLayout> 

Ich bin nicht sicher, dass das Attribut layout_weight in diesem Fall sogar notwendig ist. Sie können es mit oder ohne versuchen, aber dies sollte den Trick tun.

0

Ich würde vorschlagen, Sie versuchen <TableLayout> für diese. Stellen Sie sicher, dass Sie android:stretchColumns="0,1,2" in Ihrem Fall einstellen.

<TableLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:stretchColumns="0,1,2">