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.cangchou.com/241101.html

(0)
小仓的头像小仓

相关推荐

  • 超七水晶的价格是15元每克

    超七水晶:每克15元的宝石之谜 在众多的宝石中,超七水晶以其独特的魅力和能量特性,早已在宝石市场上占据了一席之地。而当人们得知其价格为每克15元时,或许会惊讶于它的价值。那么,超七…

    网络快讯 2024年3月9日
    0
  • 签约黄历吉日查询 农历黄道吉日查询

    签约黄历吉日查询是很多人在进行重要签约事件时常常使用的工具。根据传统的农历黄道吉日理论,每年都有特定的吉利日子,那些日期被认为能带来好运和顺利。通过查询签约黄历吉日,人们可以选择一…

    2024年3月21日
    0
  • 沈阳有多少所大学排名,沈阳有多少所大学及详细地址

      沈阳有多少所大学排名,沈阳有多少所大学及详细地址是沈阳目前有48所大学,其中本科有29所,专科有19所的。  关于沈阳有多少所大学排名,沈阳有多少所大学及详细地址以及沈阳有多少所大学排名,沈阳有多少所大学院校,沈阳有多少所大学及详细地址,沈阳有多少所大学开设俄语课程,沈阳有多少所大学院校名单…

    网络快讯 2023年11月22日
    0
  • 中级会计师报名条件有哪些?

    一、会计中级报考的条件有哪些?报考会计中级考试的考生须得满足这些条件:(一)报名参加中级会计职称考试的人员,应具备下列基本条件:1.遵守《中华人民共和国会计法》和国家统一的会计制度等法律法规。2.具备良好的职业道德,无严重违反财经纪律的行为。3.热爱会计工作,具备相应的会…

    网络快讯 2023年11月14日
    0
  • 男士翡翠手串多少颗好?我们要怎么挑选翡翠手串?【띲띪띺띧】

    从整体上来说,男士佩戴的翡翠手串的尺寸,大致有三种,第一种是尺寸为12mm的翡翠珠子手串,它适合体型偏瘦、或不希望太过醒目的男士佩戴。第二种是尺寸为14mm翡翠珠子手串,它适合于大多数男士佩戴。第三种是尺寸为18mm翡翠珠子手串,这种类型的手串尺寸较大,所以适合身高1.75CM以上,体型稍胖…

    网络快讯 2023年11月8日
    0
  • 乌鸦是保护动物吗(乌鸦是几级保护动物)

    大家好,假如你对乌鸦是保护动物吗,和乌鸦是几级保护动物不是很明白,今天小编给大家解答一下你们心中的疑问。希望可以帮助到有需要的朋友,下面就来解答关于乌鸦是保护动物吗的问题,下面我们就来开始吧!文章目录1、乌鸦是保护动物吗2、可以售卖乌鸦吗现在3、白颈乌鸦是几级保护动物4、常见…

    2023年12月17日
    0
  • 清明节的风俗食物多吗 清明节主要吃什么

    在我国不同地区,人们在清明节时吃的食物不同。那人们在清明节主要吃什么呢?从总体上看,人们在清明节主要吃青团、润饼、暖菇包、芥菜饭、馓子、子推馍、鸡蛋、薄饼、乌稔饭、朴籽粿等食物。以下是关于清明节风俗食物青团、清明饼、暖菇包、清明粑的简介,感兴趣的朋友可以继续往下阅读了解:青团、清明饼、暖菇包…

    网络快讯 2023年12月16日
    0
  • 黑金超七水晶功效

    黑金超七水晶的功效有3种1、愉悦心情,佩戴黑金超七水晶,能凸显出人端庄稳重的气质;2、美容护肤,黑金超七水晶中的矿物质和微量元素,能起到嫩白肌肤的作用;3、平稳心绪,黑金超七水晶能…

    2023年10月6日
    0
  • 画质高好玩的游戏有哪些 2024画面好的手机游戏推荐

    玩家在选游戏时除了会去比较游戏到底好不好玩外,高画质也是他们所考量的一个重点,并且画质越出众、越好玩的作品,往往更能赢得他们青睐。那么,画质高好玩的游戏有哪些呢?以下五款佳作都是小…

    2024年3月22日
    0
  • 身体痛时用何姿势吃布洛芬能最快发挥效果? 淘宝大赢家每日一猜答案10.27

    身体痛时用何姿势吃布洛芬能最快发挥效果?这是淘宝大赢家每日一猜10月27日的问题,不少小伙伴想知道10月27日这道题目的答案是什么,接下来就让我们一起了解一下淘宝大赢家每日一猜答案吧。身体痛时用何姿势吃布洛芬能最快发挥效果10月27日:身体痛时用何姿势吃布洛芬能最快发挥效果?正确答案…

    2023年11月5日
    0

发表回复

登录后才能评论