Android: RadioButton в Nested Layout под RadioGroup выпадает из группы - PullRequest
7 голосов
/ 24 марта 2012

Я пытаюсь получить разумное расположение моих радиокнопок, которые являются частью RadioGroup. У меня были проблемы, так как моя RadioGroup сидела поверх остальной части моего макета, затем я использую поля для перемещения кнопок, проблема здесь в том, что это работает только на одном или двух макетах устройства. Я подумал, что ударил по золоту, когда обнаружил, что могу определить свою RadioGroup, а затем добавить RelativeLayout, который, помимо прочего, содержит одну из RadioButton, а затем я повторяю еще два раза. это дает мне макет, который я желаю. Проблема в том, что, когда я запускаю код, кнопки RadioButtons act link автономны :(

Итак, два вопроса,

  • можно ли связать эти кнопки обратно с группой?

  • Есть ли достойный способ, чтобы иметь возможность определять расположение радиокнопок RadioGroup независимо от группы.

Я думаю, что альтернативой могут быть независимые RadioButton и использование кода для их включения / выключения, но это в некоторой степени лишает полезности RadioGroup.

спасибо.

Вот мой макет XML, если вам интересно.

    <ScrollView android:id="@+id/scrollview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"

       android:layout_below="@id/HDDResultsBox"
        >   

    <RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:focusable="true" 
    android:focusableInTouchMode="true"
    android:windowSoftInputMode="stateHidden"
    > 


    <RadioGroup android:id="@+id/calcBy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:focusable="true" 
        android:focusableInTouchMode="true"
        android:layout_below="@id/HDDResultsBox"

        >

  <RelativeLayout android:id="@+id/intervalBox"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="@drawable/backgroundbox"
       android:layout_margin="5dp"
       android:padding="5dp"


        >
          <TextView  android:id="@+id/intervalHeader"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Interval"
            android:gravity="left"
            android:textColor="#ffffff"
            android:textStyle="bold"
            android:layout_marginLeft="5dp"
            />    

         <TextView  android:id="@+id/intervalHelpText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Interval help text"
            android:gravity="left"
            android:textColor="#ffffff"
            android:textSize="8dp"
            android:layout_toRightOf="@id/intervalHeader"
            android:layout_marginLeft="10dp"
            /> 

           <LinearLayout  android:id="@+id/interval2ndBox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_below="@id/intervalHeader"
            android:layout_marginLeft="10dp"
            >
                <RadioButton android:id="@+id/byInterval"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="2dp"
                    />

                <EditText  android:id="@+id/intervalValue"
                    android:layout_width="75dp"
                    android:layout_height="40dp"
                    android:text="50"
                    android:textSize="14sp"
                    android:gravity="center"
                    android:inputType="number" 
                    android:layout_marginLeft="20dp"
                    />    

                <Spinner android:id="@+id/intervalType"
                    android:layout_width="match_parent"
                    android:layout_height="42dp"
                    android:drawSelectorOnTop="false"
                    android:layout_marginTop="1dp"
                    android:layout_marginLeft="10dp"
                    android:layout_weight="10"
               android:layout_marginRight="2dp"
                    /> 

              <SeekBar android:id="@+id/intervalSeek"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:max="100"
               android:progress="50"
               android:layout_marginLeft="5dp"
               android:layout_marginRight="5dp"
               android:layout_marginTop="8dp"
               android:layout_weight="7"
           /> 
            </LinearLayout>  

        </RelativeLayout>


 <RelativeLayout android:id="@+id/recordBox"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="@drawable/backgroundbox"
       android:layout_margin="5dp"
       android:padding="5dp"


        >
          <TextView  android:id="@+id/recordHeader"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Record Duration"
            android:gravity="left"
            android:textColor="#ffffff"
            android:textStyle="bold"
            android:layout_marginLeft="5dp"
            />    

         <TextView  android:id="@+id/recordHelpText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Record help text"
            android:gravity="left"
            android:textColor="#ffffff"
            android:textSize="8dp"
            android:layout_toRightOf="@id/recordHeader"
            android:layout_marginLeft="10dp"
            /> 

           <LinearLayout  android:id="@+id/record2ndBox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_below="@id/recordHeader"
            android:layout_marginLeft="10dp"
            >
                <RadioButton android:id="@+id/byrecord"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="2dp"
                    />

                <EditText  android:id="@+id/recordValue"
                    android:layout_width="75dp"
                    android:layout_height="40dp"
                    android:text="50"
                    android:textSize="14sp"
                    android:gravity="center"
                    android:inputType="number" 
                    android:layout_marginLeft="20dp"
                    />    

                <Spinner android:id="@+id/recordType"
                    android:layout_width="match_parent"
                    android:layout_height="42dp"
                    android:drawSelectorOnTop="false"
                    android:layout_marginTop="1dp"
                    android:layout_marginLeft="10dp"
                    android:layout_weight="10"
               android:layout_marginRight="2dp"
                    /> 

              <SeekBar android:id="@+id/recordSeek"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:max="100"
               android:progress="50"
               android:layout_marginLeft="5dp"
               android:layout_marginRight="5dp"
               android:layout_marginTop="8dp"
               android:layout_weight="7"
           /> 
            </LinearLayout>  

        </RelativeLayout>

 <RelativeLayout android:id="@+id/playBackBox"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="@drawable/backgroundbox"
       android:layout_margin="5dp"
       android:padding="5dp"


        >
          <TextView  android:id="@+id/playBackHeader"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Video Length"
            android:gravity="left"
            android:textColor="#ffffff"
            android:textStyle="bold"
            android:layout_marginLeft="5dp"
            />    

         <TextView  android:id="@+id/playBackHelpText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="playBack help text"
            android:gravity="left"
            android:textColor="#ffffff"
            android:textSize="8dp"
            android:layout_toRightOf="@id/playBackHeader"
            android:layout_marginLeft="10dp"
            /> 

           <LinearLayout  android:id="@+id/playBack2ndBox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_below="@id/playBackHeader"
            android:layout_marginLeft="10dp"
            >
                <RadioButton android:id="@+id/byplayBack"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="2dp"
                    />

                <EditText  android:id="@+id/playBackValue"
                    android:layout_width="75dp"
                    android:layout_height="40dp"
                    android:text="50"
                    android:textSize="14sp"
                    android:gravity="center"
                    android:inputType="number" 
                    android:layout_marginLeft="20dp"
                    />    

                <Spinner android:id="@+id/playBackType"
                    android:layout_width="match_parent"
                    android:layout_height="42dp"
                    android:drawSelectorOnTop="false"
                    android:layout_marginTop="1dp"
                    android:layout_marginLeft="10dp"
                    android:layout_weight="10"
               android:layout_marginRight="2dp"
                    /> 

              <SeekBar android:id="@+id/playBackSeek"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:max="100"
               android:progress="50"
               android:layout_marginLeft="5dp"
               android:layout_marginRight="5dp"
               android:layout_marginTop="8dp"
               android:layout_weight="7"
           /> 
            </LinearLayout>  

        </RelativeLayout>    


    </RadioGroup>           
</RelativeLayout>
        </ScrollView>

1 Ответ

7 голосов
/ 31 марта 2012

После поиска решения, похоже, единственный способ сделать это - использовать отдельные радиокнопки, а затем программно управлять их состояниями включения / выключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...