我正在尝试对属于 RadioGroup 的单选按钮进行一些合理的定位。我遇到了麻烦,因为我的 RadioGroup 位于布局设计的其余部分之上,然后我使用边距来插入按钮,这里的问题是这仅适用于一个或两个设备布局。当我发现我可以定义我的 RadioGroup 然后在下面放置一个 RelativeLayout 时,我以为我找到了金子,其中包含一个 RadioButtons,然后我再重复两次。这给了我想要的布局。问题是,当我运行代码时,RadioButtons 行为链接独立按钮 :(
那么两个问题,
我可以将这些按钮链接回群组吗?
是否有合适的方法能够独立于组定义 RadioGroup 单选按钮的布局。
我认为替代方案可能是独立的 RadioButtons 并使用代码来启用/禁用它们,但这确实会破坏 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>
最佳答案
在四处寻找解决方案后,看起来唯一的方法是使用单独的单选按钮,然后以编程方式控制那里的开/关状态。
关于Android:RadioGroup 下嵌套布局中的 RadioButton 脱离组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9851867/