radiobutton控件取消选中_radio单选按钮 属性

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

在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之间切换状态。这样就实现了我们的单选效果。

本文转自:www.shuotui.com/ 声明:本文文字转载、图片收集自网络,如有侵权,请及时告知我们,我们将在最短的时间内删除。

欢迎分享,转载请注明来源:民族网

原文地址:https://www.minzuwang.com//read/30572.html

最新推荐

  • 来自2060年的穿越者是真的吗_2062穿越者的预言

    网上或多或少会出现关于未来的一些消息问题,今天要给大家分享的是一位号称是来自2062年的日本穿越者,他给我们讲述了一系列的预言故事引起了很多网友的关注!于是网上有了2062年有多吓人这样的问题,那么这位来自2062年的日本穿越者说了什么呢?

    2023-03-28
  • 男主重生年代文发家致富_男主重生发财致富的小说

    男主重生都市商业文:《重生之财源滚滚》,一个靠着重生金手指发家致富的故事。主角从利用差价,倒卖小龙虾,赚第一桶金开始,到购买大楼,结交事业助手,创办超市,到成为身家十亿的百度原始股拥有者。 《重生之财源滚滚》怎么样?网友评论:——从一个拆

    2023-03-28
  • 图片免费去水印app神器_歪一点去水印破解版

    免费去水印软件(歪歪漫画)在生活中,难免会用到一些图片,但是从网上下载的图片难免会有水印,该怎么办?如果裁剪吧,图片效果不太好,可能会失去原有的美感,如果马赛克吧,同样也失去美感,对于有水印的图片,一般首选PS进行编辑,毕竟PS是万能的,没

    2023-03-28
  • 杜海涛沈梦辰谈恋爱经历_沈梦辰催杜海涛结婚

    本文转自【网易娱乐】;近日,在最新一期《初入职场的我们》节目中,杜海涛回应“被沈梦辰催婚催不动”。杜海涛表示自己其实和沈梦辰在每一个阶段都在做每个阶段该做的事情,只是没有第一时间拿出来和大家分享,也觉得大家能这么关注两人是一件很幸运的事情。

    2023-03-28
  • launcher啥意思_launch是什么游戏

    launcher什么意思(游戏的launcher)原神在10月22日更新后,许多PC端玩家收到了“发现新版本,请打开启动器获取最新游戏版本”的通知,那么原神启动器在哪?下面小编就为大家带来相关攻略,有需要的小伙伴不要错过了。原神启动器在哪首

    2023-03-28

发表评论

评论将在审核通过后展示