1

我正在使用 jetbrain compose 2020.3.3 版本,并且我正在实现类似于下面提到的代码的 Dropdown 示例。根据我的分析,“DropDownmenu”在内部使用“Popup”,默认情况下popup focusable 为false,并且“Dropdownmenu”中没有选项可以使其成为true,因此当下拉列表展开时,在下拉列表之外单击不会关闭下拉列表。似乎扩展的下拉列表正在充当阻止弹出窗口`

@Composable
    fun DropdownDemo() {
        var expanded = remember { mutableStateOf(false) }
        val items = listOf("A", "B", "C", "D", "E", "F")
        val disabledValue = "B"
        var selectedIndex = remember { mutableStateOf(0) }
        Box(modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.TopStart)) {
            Text(items[selectedIndex.value],modifier = Modifier.fillMaxWidth().clickable(onClick = { expanded.value = true }).background(
                Color.Gray))
            DropdownMenu(
                expanded = expanded.value,
                onDismissRequest = { expanded.value = false },
                modifier = Modifier.fillMaxWidth().background(
                    Color.Red)
            ) {
                items.forEachIndexed { index, s ->
                    DropdownMenuItem(onClick = {
                        selectedIndex.value = index
                        expanded.value = false
                    }) {
                        val disabledText = if (s == disabledValue) {
                            " (Disabled)"
                        } else {
                            ""
                        }
                        Text(text = s + disabledText)
                    }
                }
            }
        }
    }`
4

0 回答 0