html单选按钮默认选中 radiobutton控件默认选中

在JetpackCompose中用于制作单选按钮的可组合函数名为RadioButton。单选按钮是用户可以选择的小圆形按钮。一次只能选择一个选项。下面向您介绍如何使用RadioButton,如何实现多个RadioButton中一次只能选择一个选项的效果。RadioButton(selected…

在Jetpack Compose中用于制作单选按钮的可组合函数名为RadioButton。单选按钮是用户可以选择的小圆形按钮。一次只能选择一个选项。下面向您介绍如何使用RadioButton,如何实现多个RadioButton中一次只能选择一个选项的效果。

RadioButton(selected = false, onClick = { /*TODO*/ })

我们用非常简洁的代码就创建了一个RadioButton,如下图:

RadioButton

此时的RadioButton没有任何的效果,也不能点击。

接下来,我们要为RadioButton添加一个点击状态并设置RadioButton的不同状态的样式。

val isSelected = remember {mutableStateOf(false)}
RadioButton(
    colors = RadioButtonDefaults.colors(
        selectedColor = selectedColor1,
        unselectedColor = unselectedColor1,
        disabledColor = disabledColor1
    ),
    enabled = true,
    selected = isSelected.value,
    onClick = { isSelected.value = !isSelected.value})

在上面的代码中,我们新建了一个isSelected变量来保存RadioButton的点击状态,使用colors设置RadioButton的样式,这里使用RadioButtonDefaults实例,并使用所需的背景色作为参数对其调用colors方法。

selectedColor:选中并启用时用于单选按钮的颜色

unselectedColor:未选择并启用时用于单选按钮的颜色。

disabledColor:禁用时用于单选按钮的颜色。

使用selected在“选定”和“未选定”之间切换按钮的当前状态。使用enabled控制单选按钮的启用状态。onClick单击RadioButton时要调用的回调,在回调中更改状态的值。如下图:

在Jetpack Compose中,RadioButton没有设置文字的属性,要想使其显示文字,就要使用组合项来实现。

val isSelected = remember {mutableStateOf(false)}
Row(
    modifier = Modifier.clickable {
        isSelected.value = !isSelected.value
    }) {
    RadioButton(
        colors = RadioButtonDefaults.colors(
            selectedColor = selectedColor1,
            unselectedColor = unselectedColor1,
            disabledColor = disabledColor1
        ),
        enabled = true,
        selected = isSelected.value,
        onClick = { isSelected.value = !isSelected.value })
    Spacer(modifier = Modifier.width(2.dp))
    Text(text = text)
}

在上面的代码中,我们在Row(线性水平)布局中添加了RadioButtonText两个组合项,实现RadioButton显示文字的效果,使用Spacer添加间隔,在RowModifier.clickable中,当点击整个布局也可以更改RadioButton的状态,如下图:

显示文字效果

我们知道在Android开发中向RadioGroup中添加多个RadioButton,可以实现多个选项中只有一个RadioButton选中的效果,但在Jetpack Compose中没有这样的实现,我们需要自己自定义一个组合。

@Composable
fun MyRadioButtonList(context: Context){
    val fruits = listOf("苹果", "枇杷", "樱桃", "草莓")
    val selectedButton = remember { mutableStateOf(fruits.first()) }

    Row() {
        fruits.forEach {
            val isSelected = it == selectedButton.value
            Row(
                verticalAlignment = Alignment.CenterVertically,
                modifier = Modifier.clickable(onClick = {
                    selectedButton.value = it
                    Toast.makeText(context, "您点击了${it}", Toast.LENGTH_SHORT).show()
                })
            ) {
                RadioButton(
                    colors = RadioButtonDefaults.colors(
                        selectedColor = selectedColor1,
                        unselectedColor = unselectedColor1,
                        disabledColor = disabledColor1
                    ),
                    selected = isSelected,
                    onClick = {
                        selectedButton.value = it
                        Toast.makeText(context, "您点击了${it}", Toast.LENGTH_SHORT).show()
                    })
                Spacer(modifier = Modifier.width(2.dp))
                Text(text = it)
            }
        }
    }
}

在上面的代码中,首先,我们新建了一个fruits集合,我们用集合中的选项表示每个单选按钮的索引。接下来,创建一个selectedButton状态,以记住当前选择的按钮。默认情况下,选择第一个按钮。使用for循环,在循环的每次迭代中向列添加一个RadioButton。每次循环的使用我们判断selectedButton的值是否是当前的RadioButton,然后将isSelected的赋给RadioButton,每次用户点击按钮时,您都会更改在状态中选择的按钮。这将触发重新编译,您的UI将更新!如下图:

默认情况下会选择第一个RadioButton。选择另一个RadioButton时,可以看到在RadioButton之间切换状态。这样就实现了我们的单选效果。

版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(http://www.zengtui.com/)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3933150@qq.com 举报,一经查实,本站将立刻删除。

版权声明:本文内容由作者小仓提供,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至907991599@qq.com 举报,一经查实,本站将立刻删除。如若转载,请注明出处:http://www.shaisu.com/241101.html

(0)
小仓的头像小仓

相关推荐

  • 回锅肉图片(回锅肉怎么做才好吃?)

    回锅肉怎么做才好吃?回锅肉的做法3360食材,五花肉,青椒,蒜苗,葱,葱,姜,蒜。1.洋葱、蒜苗、青椒、蒜末切末备用。2.将五花肉放入冷水锅中,放入两勺料酒、姜片、葱、花椒,煮20分钟,捞出放凉,切片备用。3.锅里放油,把肉片倒进去,煎出两面金黄…

    网络快讯 2023年10月20日
    0
  • 中考是几月几号(请问每年中考是几月几号)

    中考是几月几号(请问每年中考是几月几号)中考全称为初中学业水平考试,是检测初中在校生是否达到初中学业水平的水平性考试和建立在九年义务教育基础上的高中选拔性考试,是初中毕业证发放的必要条件,考试科目将国家课程方案所规定的学科全部列入初中学业水平考试的范围。学生可根据中考成绩报考相应的普通高中、职…

    网络快讯 2023年12月2日
    0
  • word另起一页怎么弄 word是什么软件

      word另起一页怎么弄?关于word另起一页怎么弄以及word另起一页怎么弄快捷键,word另起一页怎么弄设置第二页,word另起一页怎么做,word怎么另起一页,在word里怎么另起一页等问题,小编将为你整理以下的知识答案:word是什么软件  word是办公软件的。  wor…

    2023年11月28日
    0
  • 精子胶冻状是死精吗 男人死精是什么样子

      1、精子胶冻状不是死精的,男人死精症临床表现不一致,有的无临床症状,部分患者有慢性前列腺病史、睾丸炎、精囊炎,有的患者有遗精、早泄或性欲低下等等症状。  2、精子呈现胶冻状不是死精的现象,考虑是精子不液化的情况。正常情况下,精子在排出体外20分钟就会出现液化,如果超过了30分钟或者是更长的时…

    网络快讯 2023年11月28日
    0
  • 黑髮晶的價格參攷,全面瞭解黑髮晶功效、禁忌、辟邪、防小人等知識

    黑髮晶 購買諮詢天然黑髮晶, 加wechat:3933150 微信上為您推薦高品質的黑髮晶首飾。 購買諮詢天然金黑髮晶, 加wechat:3933150 微信上為您推薦高品質的黑髮…

    网络快讯 2024年3月9日
    0
  • 网上买钻戒哪个网站好啊,如何选择靠谱的购物平台

    随着互联网的发展,现在的购物方式已经从传统的线下购物转变为线上购物。越来越多的人开始选择在网上购物,尤其是在购买高价值商品时,如钻戒。但是,面对众多的购物平台,消费者很难判断哪个网站是靠谱的。本文将为大家介绍如何选择靠谱的购物平台来购买钻戒。一、选择知名品牌网站在选择购物平台时,首先…

    网络快讯 2023年10月20日
    0
  • 卡塔尔世界杯共建造了几座球场 卡塔尔已经开始拆球场了是真的吗

    目前卡塔尔世界杯的8强已经诞生了,卡塔尔也已经开始拆球场了,本周二上午,974球场已经开始了拆除工作,周围的所有帆布和隔离栏已经被去除。那么卡塔尔世界杯共建造了几座球场?下面小编带来介绍。卡塔尔已经开始拆球场了是真的吗目前2022年卡塔尔世界杯仍在进行中,但世界杯的比赛场馆之一,可容纳4万名…

    网络快讯 2023年12月16日
    0
  • 朝鲜历史朝代顺序(朝鲜历史朝代顺序是什么呢)

    朝鲜王朝(朝鲜语:조선왕조,1392年—1910年),又称李氏朝鲜,简称李朝,是朝鲜半岛历史上最后一个统一封建王朝。1392年,李成桂取代王氏高丽而建国,朝鲜王朝的首都初在高丽王朝的故都开京(今开城…,以下是对”朝鲜历史朝代顺序”的详细解答!文章目录1、朝鲜历史朝代顺序是什么呢…

    2023年12月18日
    0
  • 大厨教你炖鸡汤 ,一勺食盐2个小妙招,炖出的鸡汤香浓味美不油腻

    炖鸡汤,我相信这是我们平常人家都会煨制的一道汤菜。只是大家在选择鸡和辅料上有所差别而已,像有些人会选择母鸡,有些人会选择公鸡,辅料上有人会选择当归红枣等药材,有人会选择山药或板栗,有人会选择莴笋或竹笋等……这些都是根据个人口味喜好或是家人的爱好跟要求来决定的。既然大家都会炖鸡…

    网络快讯 2023年11月15日
    0
  • 工地散工是什么意思,工地散工多少钱一天

      工地散工是什么意思,工地散工多少钱一天是“散工”汉语词语,拼音是sàngōng,sǎngōng,意思是短工;零工的。  关于工地散工是什么意思,工地散工多少钱一天以及工地散工是什么意思,工地上的散工是什么意思,工地散工多少钱一天,散工是什么意思网络用语,什么叫散工等问题,小编将为你整理以…

    网络快讯 2023年11月26日
    0

发表回复

登录后才能评论