2013-03-15 10 views
16

Mam trzy radiobuttony i chcę je równomiernie rozłożyć na ekranie. Kiedy używam android:layout_weight="1", przyciski są rozciągnięte na całym ekranie. Więc w jaki sposób miałbym taką samą przestrzeń pomiędzy nimi, która również skaluje się na różnych rozmiarach ekranu?Jak równomiernie rozłożyć radiobutony w systemie Android?

<RadioGroup 
     android:id="@+id/auton_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:paddingLeft="10dp" 
     android:layout_below="@id/clear_fields" 
       > 
     <RadioButton 
      android:id="@+id/auton_radio_1" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:background="@drawable/auton_col" 
      android:layout_weight="1" 

      /> 
     <!-- android:layout_marginRight="380dp" --> 
     <RadioButton 
      android:id="@+id/auton_radio_2" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:background="@drawable/auton_col" 
      android:layout_weight="1" 


      /> 
     <RadioButton 
      android:id="@+id/auton_radio_3" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:background="@drawable/auton_col" 
      android:layout_weight="1" 
      /> 

    </RadioGroup> 

Odpowiedz

30

Jeśli chcesz je podzielić szerokość ekranu równie trzeba ustawić android:layout_width="match_parent" na każdym View. Twój xml staną:

<RadioGroup 
    android:id="@+id/auton_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/clear_fields" 
    android:orientation="horizontal" 
    android:paddingLeft="10dp" > 

    <RadioButton 
     android:id="@+id/auton_radio_1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="@drawable/auton_col" /> 
    <!-- android:layout_marginRight="380dp" --> 

    <RadioButton 
     android:id="@+id/auton_radio_2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="@drawable/auton_col" /> 

    <RadioButton 
     android:id="@+id/auton_radio_3" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="@drawable/auton_col" /> 
</RadioGroup> 

Aby opracować, layout_weight można stosować na dwa sposoby.

  • Jeśli masz kilka widoków w układzie pionowym liniowego i chcesz ostatni wziąć całą pozostałą przestrzeń, można ustawić ich wysokość do wrap_content i dać ostatni pogląd masę 1.
  • Jeśli chcesz, aby wszystkie widoki udostępniały dostępne miejsce, ustaw wszystkie szerokości/wysokości na 0dp lub match_parent i nadaj każdemu widokowi tę samą wartość ciężaru. Podzielą przestrzeń równo.

Aby mieć tło rozciągliwej skalę, nawiązać nowe xml, który przechodzi w folderze drawable/ że wygląda tak

<?xml version="1.0" encoding="utf-8"?> 
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
    android:gravity="center" 
    android:src="@drawable/auton_col" /> 

nazywacie to, co chcesz (np auton_col_scale.xml) oraz odniesienie że rozciągliwej jako Twoje tło.

+0

Dzięki, to działało, ale z jakiegoś powodu parametr 'layout_weight' sprawia, że ​​moje' RadioButtons' jest dwa razy dłuższe. http://i.imgur.com/7PZfm1j.png Zazwyczaj mają tylko połowę tej szerokości. – rasen58

+0

powinieneś uczynić 'auton_co1' skalowalną bitmapą. Odpowiedź jest edytowana na przykładzie –

+0

@ rasen58 ustaw 'android: layout_width' przycisków radiowych na' 0dp' – Henry

0

Zauważyłem, że użycie wag układu dla RadioButton spowodowało, że były wyrównane poza centrum, mimo że na pewno każdy z nich dzielił 50% ekranu (były wyrównane do lewej). Ustawianie grawitacji dla każdego RadioButton spowodowane tylko tekst do centrowania/facepalm

Poniższa XML pokazuje, jak poziomo wyrównać dwa radiobuttons (może być żadnych wyświetleń) i centrum im:

   <RadioGroup 
        android:id="@+id/radiogroup" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal"> 

        <Space 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_weight="1"/> 

        <RadioButton 
         android:id="@+id/radioyes" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="@string/yes" 
         android:checked="false"/> 

        <Space 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_weight="1"/> 

        <RadioButton 
         android:id="@+id/radiono" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="@string/no" 
         android:checked="false"/> 

        <Space 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_weight="1"/> 

       </RadioGroup> 
Powiązane problemy