猿问

Android:以编程方式创建特殊的 RadioButton

我正在尝试创建一种比例视图。因此,我将 RadioButtons 与 RadioButton 顶部的文本一起使用。


在我的布局文件中定义它工作正常:


<LinearLayout

    android:layout_weight="1"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:orientation="horizontal">

    <RadioGroup

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="horizontal" >

        <RadioButton

            android:layout_height="match_parent"

            android:layout_width="match_parent"

            android:text="Text on top"

            android:button="@null"

            android:drawableBottom="@android:drawable/btn_radio"

            android:gravity="center"

            android:layout_weight="1"/>

        <RadioButton

            android:layout_height="match_parent"

            android:layout_width="match_parent"

            android:text="Text on top"

            android:button="@null"

            android:drawableBottom="@android:drawable/btn_radio"

            android:gravity="center"

            android:layout_weight="1"/>

    </RadioGroup>

</LinearLayout>

结果如下所示:

现在我只需要RadioGroup。我想以编程方式创建RadioButtons 并将它们添加到 RadioGroup。


我试过这段代码,但它不起作用:


RadioButton rb = new RadioButton(Context);

LinearLayout.LayoutParams rbParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);

rb.SetButtonDrawable(null);

rb.SetCompoundDrawablesWithIntrinsicBounds(null,null,null, Resources.GetDrawable(Android.Resource.Drawable.ButtonRadio));

rb.Text = "Test";

rb.Gravity = GravityFlags.Center;

rbParams.Weight = 1;

rb.LayoutParameters = rbParams;

radioGroup.AddView(rb);

我认为SetButtonDrawable和/或SetCompoundDrawable与android:button和不同android:drawableBottom。


手掌心
浏览 198回答 2
2回答

牧羊人nacy

我认为您忘记将布局参数设置为您的单选按钮。只需添加rb.setLayoutParams(rbParams);添加您之前rb给你的radioGroup
随时随地看视频慕课网APP
我要回答