当前位置: 首页 > news >正文

Android Compose 下拉选择框 ExposedDropdownMenu下拉选择

/*** @author   创建人:蒙石瑞* @date     创建时间:2024/8/23 10:57* @Description    创建内容:下拉选择框*/
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun CustomExposedDropdownMenu(options: List<out DropdownMenuDes>,labelStr: String,onSelect: (DropdownMenuDes) -> Unit
) {var expanded by remember {mutableStateOf(false)}var selectedOptionText by remember { mutableStateOf("") }ExposedDropdownMenuBox(expanded = expanded,onExpandedChange = {expanded = !expanded},) {CustomOutlinedTextField(value = selectedOptionText,onValueChange = { selectedOptionText = it },trailingIcon = {ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded)},label = { Text(labelStr) },singleLine = true,colors = OutlinedTextFieldDefaults.colors(focusedBorderColor = Color.Blue,unfocusedBorderColor = Color.White,cursorColor = Color.Black,focusedContainerColor = Color.White,unfocusedContainerColor = Color.White,focusedLabelColor = Color.Blue,disabledLabelColor = Color.Black),modifier = Modifier.width(120.dp).height(50.dp).menuAnchor(),readOnly = true,contentPadding = PaddingValues(start = 5.dp, end = 2.dp),)ExposedDropdownMenu(expanded = expanded,onDismissRequest = { expanded = false },modifier = Modifier.heightIn(max = 250.dp)) {options.forEach { option ->DropdownMenuItem(text = { Text(option.showName) }, onClick = {selectedOptionText = option.showNameexpanded = falseonSelect(option)})}}}
}

使用

abstract class DropdownMenuDes(val showName: String, val showId: String)val tempShow = listOf(DropdownMenuInfo("one", "xxxx"),DropdownMenuInfo("2222", "xxxx"),DropdownMenuInfo("33333", "xxxx"),DropdownMenuInfo("4444", "xxxx"),DropdownMenuInfo("5555", "xxxx"),DropdownMenuInfo("666", "xxxx"),DropdownMenuInfo("777", "xxxx"),DropdownMenuInfo("999", "xxxx"),DropdownMenuInfo("1010", "xxxx"))Row {CustomExposedDropdownMenu(tempShow, "垛位") { item ->ToastUtil.showToast(item.showName)}}


http://www.mrgr.cn/news/7726.html

相关文章:

  • Python中在读文件时如何删除换行符
  • [C++] std::copystd::memcpyforloop assign的使用说明
  • 文字怎么生成二维码扫码展示?文本活码在线生成的3步操作技巧
  • 如何远程连接到AWS EC2实例?
  • 用 docker 创建 jmeter 容器, 实现性能测试,该如何下手?
  • WIFI 应用层代码
  • 三数之和及unordered_set和set的使用区别
  • Python 如何使用正则表达式进行复杂文本处理
  • 【Docker】以思源笔记为例,谈谈什么是端到端加密
  • C#面:ASP.NET MVC 中如何用表单认证?
  • pycharm远程调试服务器代码提示,运行‘test’时出错,illegal char at index
  • 开源大模型LLaMA架构介绍
  • 【python】调用openAI api接口批量处理excel中的文本
  • kickstart自动安装脚本制作详解
  • 自来水厂供水监控的串口服务器应用
  • mysql在字符串列建立索引示例
  • 怎样更改电脑的MAC地址?
  • Qt QLabel点击事件
  • Go语言标准错误error解析
  • Git和TortoiseSVN忽略的使用