Android Jetpack Compose Material 3 modifier.menuAnchor() 无法正常工作

问题描述 投票:0回答:1

modifier.menuAnchor() 未按预期工作。 ExposeDropDownMenu 没有锚定到文本字段的底部,这是我认为应该发生的情况。

Before expanded

After expanded

如果我删除menu.anchor(),当我展开它时什么也不会出现。请看这里:

no menu.Anchor() Before expanded

no menu.Anchor() After expanded

我尝试对此进行研究,但网上没有太多示例,而且我找到的示例似乎就像我尝试的那样。这是我所期望的图像: expected result

这是我尝试做的:

    @OptIn(ExperimentalMaterial3Api::class)
    @Composable
    fun GameDropdownMenu(gameNames: List<String>) {
        var expanded by remember { mutableStateOf(false) }
        var selectedText by remember { mutableStateOf("Select Game")}

        Box(
            modifier = Modifier
                .fillMaxWidth()
                .padding(16.dp)
        ) {
            ExposedDropdownMenuBox(
                expanded = expanded,
                onExpandedChange = { expanded = !expanded },
                modifier = Modifier
            ) {

                TextField(
                    value = selectedText,
                    onValueChange = {},
                    readOnly = true,
                    trailingIcon = {
                        ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded)
                                   },
                    modifier = Modifier.menuAnchor().fillMaxWidth()
                )

                ExposedDropdownMenu(
                    expanded = expanded,
                    onDismissRequest = { expanded = false },
                ) {
                    gameNames.forEach { gameName ->
                        DropdownMenuItem(
                            text = { TextBodyPrimary(text = gameName, fontSize = 12.sp) },
                            onClick = {
                                selectedText = gameName
                                expanded = false

                            }
                        )
                    }
                }

            }
        }
    }
```
android drop-down-menu android-jetpack-compose android-jetpack-compose-material3
1个回答
0
投票

你的代码乍一看似乎不错。
请检查您是否拥有用于

material3
可组合项的正确
DropdownMenuXX
导入。

import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.ExposedDropdownMenuBox
import androidx.compose.material3.ExposedDropdownMenuDefaults
import androidx.compose.material3.TextField
© www.soinside.com 2019 - 2024. All rights reserved.