0

Я хочу, чтобы мои переключатели стали немного более уютными друг с другом.Как я могу использовать свои радиокнопки для Android, чтобы использовать меньше прокладок?

Я надеялся поместить их в радиогруппу, считая, что автоматически обеспечит «если этот флажок установлен, другие будут автоматически отменять» логику.

Но с: радио-группы

<TableRow 
     android:id="@+id/tableRow6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="5dip"> 

     <RadioGroup 
      android:id="@+id/radioEditList" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 

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

     <RadioButton 
      android:id="@+id/radioNever" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:checked="true" 
      android:text="@string/editlist_radgrp_never" /> 

     <RadioButton 
      android:id="@+id/radioCostChange" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/editlist_radgrp_costchange" /> 
    </RadioGroup> 
</TableRow> 

... это выглядит следующим образом:

enter image description here

Без RadioGroup:

<TableRow 
    android:id="@+id/tableRow6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="5dip"> 

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

    <RadioButton 
     android:id="@+id/radioNever" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:checked="true" 
     android:text="@string/editlist_radgrp_never" /> 

    <RadioButton 
     android:id="@+id/radioCostChange" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/editlist_radgrp_costchange" /> 
</TableRow> 

... он выглядит лучше :

enter image description here

... но все же жалко или, по крайней мере, горестно, неадекватно.

Как я могу спрятать радиокнопки вместе?

+1

У меня были аналогичные проблемы с заполнением кнопки, и выяснилось, что проблема была в minWidth, minHeight. Попробуйте переопределить minWidth наряду с уменьшением заполнения. –

ответ

1

Вы можете попробовать положить все это внутри

LinearLayout 

и определение веса для каждой кнопки. Что-то вроде этого:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<TableRow 
    android:id="@+id/tableRow6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="3" 
    android:padding="5dip" > 

    <RadioButton 
     android:id="@+id/radioAlways" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:checked="false" 
     android:text="always" /> 

    <RadioButton 
     android:id="@+id/radioNever" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:checked="true" 
     android:text="never" /> 

    <RadioButton 
     android:id="@+id/radioCostChange" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="costchange" /> 
</TableRow> 

+0

Использование LinearLayout полностью шланги для остальной части моего макета –

0

Я был в состоянии заставить его работать так:

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

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

    <RadioButton 
     android:id="@+id/radioNever" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:checked="true" 
     android:text="@string/editlist_radgrp_never" /> 

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

    </RadioGroup> 

Отличие от моей первой попытки есть теперь правая скобка следуя объявление радиогруппы и свойство ориентации, установленное в горизонтальное положение. Кроме того, нет необходимости в приложении TableRow (на самом деле, кажется, все испортилось).