如何在android中动态设置RadioButton大小

Posted

技术标签:

【中文标题】如何在android中动态设置RadioButton大小【英文标题】:How to dynamically set RadioButton size in android 【发布时间】:2019-11-25 21:37:33 【问题描述】:

我想在水平中显示10 radioButtons。 我尝试将其添加到RadioGroup,但运行应用程序后,它并没有显示所有radioButtons我的用户界面图像: @ 987654321@

在某些设备上,radioButtons 并未全部显示。

如何动态从设备屏幕宽度将尺寸设置为radioButton

我的布局:

<RadioGroup
        android:id="@+id/radioGrp"
        android:layout_
        android:layout_
        android:layout_marginTop="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/bidStepper_txt"
        android:orientation="horizontal">

            <RadioButton
                android:layout_
                android:layout_
                android:text="10" />

            <RadioButton
                android:layout_
                android:layout_
                android:text="9" />

            <RadioButton
                android:layout_
                android:layout_
                android:text="8" />

            <RadioButton
                android:layout_
                android:layout_
                android:text="7" />

            <RadioButton
                android:layout_
                android:layout_
                android:text="6" />

            <RadioButton
                android:layout_
                android:layout_
                android:text="5" />

            <RadioButton
                android:layout_
                android:layout_
                android:text="4" />

            <RadioButton
                android:layout_
                android:layout_
                android:text="3" />

            <RadioButton
                android:layout_
                android:layout_
                android:text="2" />

            <RadioButton
                android:layout_
                android:layout_
                android:text="1" />

    </RadioGroup>

我怎么会这样?

【问题讨论】:

最好使用HorizontalScrollView .. 因为如果你尝试用固定宽度换行RadioButtons 可能会太小或有时太大.. @ADM,是的,我的朋友,Horizo​​ntalScrollView 是更好的方法。但我们设计师说不会滚动这个RadioButtons。只需修复所有设备的大小!你能帮我吗? 尝试在单选按钮中设置 layout_weight 即 android:layout_weight = 0.1 【参考方案1】:

屏幕上显示的所有项目使用将android:layout_weight=".1" 分配给所有RadioButton

android:layout_weight根据设备屏幕宽度将所有单选按钮宽度等分,但布局存在问题,因为在某些设备中它可以被剪裁,因为某些设备的屏幕宽度较小,以克服这个问题您可以使用如下所示的水平滚动视图:

 <HorizontalScrollView
        android:layout_
        android:layout_>
        <RadioGroup
            android:id="@+id/radioGrp"
            android:layout_
            android:layout_
            android:layout_marginTop="8dp"
            android:orientation="horizontal">

            <RadioButton

                android:layout_
                android:layout_
                android:text="10" />

            <RadioButton

                android:layout_
                android:layout_
                android:text="9" />

            <RadioButton

                android:layout_
                android:layout_
                android:text="8" />

            <RadioButton

                android:layout_
                android:layout_
                android:text="7" />

            <RadioButton

                android:layout_
                android:layout_
                android:text="6" />

            <RadioButton
                android:layout_
                android:layout_

                android:text="5" />

            <RadioButton

                android:layout_
                android:layout_
                android:text="4" />

            <RadioButton

                android:layout_
                android:layout_
                android:text="3" />

            <RadioButton

                android:layout_
                android:layout_
                android:text="2" />

            <RadioButton

                android:layout_
                android:layout_
                android:text="1" />

        </RadioGroup>
    </HorizontalScrollView>

我希望它对你有用。

【讨论】:

【参考方案2】:

这里是有用的示例代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_
     android:layout_
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     tools:context="com.radiobuttonhorizontal_android_examples.com.MainActivity" >



     <RadioGroup
     android:id="@+id/radiogroup"
     android:layout_
     android:layout_
     android:orientation="horizontal"
     android:layout_centerVertical="true"
     android:layout_centerHorizontal="true" >
     <RadioButton
     android:id="@+id/radioButton1"
     android:layout_
     android:layout_
     android:text="Android" />

     <RadioButton
     android:id="@+id/radioButton2"
     android:layout_
     android:layout_
     android:text="php" />

     <RadioButton
     android:id="@+id/radioButton3"
     android:layout_
     android:layout_
     android:text="Blogger" />
    </RadioGroup>

     <TextView
     android:id="@+id/textView1"
     android:layout_
     android:layout_
     android:layout_above="@+id/radiogroup"
     android:layout_centerHorizontal="true"
     android:layout_marginBottom="25dp"
     android:text="Horizontal Radio Buttons"
     android:textAppearance="?android:attr/textAppearanceLarge" />

    </RelativeLayout>

【讨论】:

谢谢亲爱的,但我可以显示水平单选按钮!但我的 radioButtons 有 10 个项目,因此不会显示所有项目

以上是关于如何在android中动态设置RadioButton大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中动态设置RadioButton大小

如何在android中动态设置样式为TextInputLayout?

如何在android中动态设置可绘制的图像?

我们如何在android中使用firebase Realtime数据库动态设置选项卡布局的选项卡标题?

Android - 如何动态设置 caldroid 的高度?

在android中动态设置状态栏颜色