ConstraintLayout、RadioGroup 和两列 RadioButton

And*_*ife 2 android android-layout android-radiogroup android-radiobutton android-constraintlayout

我有一个 ConstraintLayout 作为根布局,这很好。
但是,我现在有一个 RadioGroup,我必须在其中制作两列 RadioButtons。由于 ConstraintLayout 是关于摆脱嵌套布局,我认为将这些 RadioButtons 放在 RadioGroup 中并适当放置它们会很好。
原来将 ConstraintLayout 作为根布局,包含 RadioGroup,似乎没有改变任何东西。
但也许我错了。

你们如何实现在一个 RadioGroup 中拥有两行 RadioButtons,它在 ConstraintLayout 中?

干杯

Kar*_*uri 5

Views 必须使用其直接父级的布局属性。例如,您不能将RadioButtons 与layout_constraints 一起使用,因为直接父项是 aRadioGroup并且RadioGroup不知道如何解释这些属性。

RadioGroupextends LinearLayout,所以你可以用单个做的最好的RadioGroupRadioButtons的单行或单列。你可以RadioGroup在你的布局中有两个s,在你的 java 代码中监听两者的变化。

private RadioGroup mGroup1; // init in onCreate
private RadioGroup mGroup2; // init in onCreate

private OnCheckedChangedListener mCheckListener = new OnCheckedChangedListener() {

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        // To make it appear as if the two groups are one large group,
        // checking something in either should clear the check in the other.
        RadioGroup otherGroup = group == mGroup1 ? mGroup2 : mGroup1;
        otherGroup.clearCheck();

        // do something with checkedId
    }
}
Run Code Online (Sandbox Code Playgroud)