2015-02-10 2 views
1

Я пытаюсь создать RadioGroup с двумя переключателями в горизонтальном и вертикальном центре. Но также я хочу, чтобы они поддерживали их радио, поскольку они имели разную длину текста. Я использовал этот код, но они не являются взаимоисключающими:Использование RelativeLayout внутри RadioGroup делает RadioButtons не эксклюзивным

 <RadioGroup 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:gravity="center"> 

      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center|center_vertical"> 

       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/rbtn_gps_to" 
        android:text="to" 
        android:checked="true" 
        /> 


       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/rbtn_gps_from" 
        android:text="from" 
        android:layout_below="@+id/rbtn_gps_to" 
        /> 


      </RelativeLayout> 


     </RadioGroup> 

Он работает, как выровнены, как я хочу, но проблема в том, что когда я проверяю одну, а затем проверить с другой стороны, первый один пребывание также проверены, поэтому они не являются эксклюзивными. Когда я удаляю Relative Layout, радиолюбители являются эксклюзивными. Является ли какой-либо способ создать макет, который я хочу, и радиолюбители остаются эксклюзивными?

ответ

1

Предыдущие ответы содержат некоторые вопросы. Выбранные точки не находятся в одном столбце, они не выровнены. Это решение, которое выглядит так же, как и ваше.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
    <RadioGroup 
      android:layout_width=" wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:orientation="vertical"> 
     <RadioButton android:id="@+id/rbtn_gps_to" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="to"/> 
     <RadioButton android:id="@+id/rbtn_gps_from" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="from"/> 
    </RadioGroup> 
</RelativeLayout> 
+0

Если я его использую, кнопки не отображаются. Если я изменю содержимое макета, оберните содержимое match_parent, они будут отображаться слева, они не находятся в горизонтальной плоскости – Ilenca

+0

, поэтому давайте попробуем мое новое решение. –

+0

RadioButton расширяет LinearLayout, и его поведение то же самое. Если вы хотите сделать что-то особенное, вам нужно добавить дополнительный макет. –

0

Привет использовать ниже следующее:

<RadioGroup 
    android:id="@+id/radio_group_1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 

    android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <RadioButton 

     android:id="@+id/rbtn_gps_from" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingRight="20dp" 
     android:text="from" /> 

    <RadioButton 
     android:id="@+id/rbtn_gps_to" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingRight="20dp" 
     android:text="to" /> 
</RadioGroup> 
+0

Он помещает RadioButtons в верхнюю часть. Мне нужны они в центре горизонтального и вертикального. Также они не выровнены по их радио – Ilenca

+0

Я отредактировал и выше выровнял его с помощью радиокнопки :) –

+0

Теперь они находятся в центре, но не выровнены по их радио :( – Ilenca

0

Да, вы можете сделать макет, что нужно, установив XML свойство RadioGroup к вертикали.

<RadioGroup 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:gravity="center"> 

      <RadioButton 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/rbtn_gps_to" 
       android:text="to" 
       android:checked="true" 
       /> 


      <RadioButton 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/rbtn_gps_from" 
       android:text="from" 

       /> 

    </RadioGroup> 
+0

проблема в том, что они находятся в центре, но не выровнены по их радио. – Ilenca

Смежные вопросы