一 概述
- RadioButton和RadioContainer组合使用,实现单选效果
- RadioContainer是RadioButton的容器,其下的RadioButton只有一个被选中
1 2 3 4 5 6
| <RadioButton ohos:id="$+id:rb_1" ohos:height="40vp" ohos:width="match_content" ohos:text="A.Learning" ohos:text_size="20fp"/>
|
text_color_on为选中状态的字体颜色,text_color_off为未选中状态的字体颜色
在xml中设置
1 2 3 4
| <RadioButton ... ohos:text_color_on="#00BFFF" ohos:text_color_off="#808080"/>
|
在Java代码中设置
1 2
| rBtn.setTextColorOn(new Color(Color.getIntColor("#0066FF"))); rBtn.setTextColorOff(new Color(Color.getIntColor("#505050")));
|
效果图
三 RadioContainer
3.1 创建RadioContainer
XML中设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:height="match_parent" ohos:width="match_parent" ohos:orientation="vertical">
<RadioContainer ohos:id="$+id:radio_container" ohos:height="match_content" ohos:width="match_content" ohos:layout_alignment="horizontal_center" ohos:top_margin="32vp">
<RadioButton ohos:id="$+id:radio_button_1" ohos:height="40vp" ohos:width="match_content" ohos:marked="true" ohos:text="A" ohos:text_size="14fp"/>
<RadioButton ohos:id="$+id:radio_button_2" ohos:height="40vp" ohos:width="match_content" ohos:text="B" ohos:text_size="14fp"/> <RadioButton ohos:id="$+id:radio_button_3" ohos:height="40vp" ohos:width="match_content" ohos:text="C" ohos:text_size="14fp"/>
</RadioContainer> </DirectionalLayout>
|
RadioContainer效果
3.2 设置RadioContainer
3.2.1 设置响应RadioContainer状态改变的事件
1 2 3 4 5 6 7 8 9
| RadioContainer container = (RadioContainer) findComponentById(ResourceTable.Id_radio_container); container.setMarkChangedListener(new RadioContainer.CheckedStateChangedListener() { @Override public void onCheckedChanged(RadioContainer radioContainer, int index) { RadioButton radioButton= (RadioButton) radioContainer.getComponentAt(index); String text=radioButton.getText(); new ToastDialog(getContext()).setText(text).show(); } });
|
1
| container.mark(ResourceTable.Id_radio_button_1);
|
1
| container.cancelMarks();
|
orientation设置为“horizontal”,表示横向布局;
orientation设置为“vertical”,表示纵向布局。
默认为纵向布局。
xml中设置
1 2 3 4 5
| <RadioContainer ... ohos:orientation="horizontal"> ... </RadioContainer>
|
java代码中设置
1
| container.setOrientation(Component.HORIZONTAL);
|
设置布局方向为横向布局效果