【问题标题】:Jetpack compose DropdownMenu With rounded CornersJetpack compose DropdownMenu 带有圆角
【发布时间】:2021-03-24 12:26:39
【问题描述】:

您好,我不知道如何在 jetpack compose 1.0.0-beta02 中制作切角菜单。我尝试用表面包裹 while 菜单,但它不起作用。

    TopAppBar(
        modifier = Modifier
            .statusBarsPadding(),
        title = {
            Text(text = "Title")
        },
        actions = {
            var menuExpanded by remember { mutableStateOf(false) }

            IconButton(onClick = { menuExpanded = true }) {
                Icon(Icons.Default.MoreVert, contentDescription = null)
            }

            DropdownMenu(
                expanded = menuExpanded,
                onDismissRequest = {
                    menuExpanded = false
                },
            ) {
                DropdownMenuItem(onClick = {}) {
                    Text("Item 2")
                }
            }
        },
    )

这给了我

但我需要这样的东西,它是圆角的。

【问题讨论】:

    标签: android kotlin menu android-jetpack-compose


    【解决方案1】:

    DropdownMenu 使用的默认形状由 medium 属性在shapes 中用于MaterialTheme(检查您的主题)。

    val Shapes = Shapes(
        small = RoundedCornerShape(4.dp),
        medium = RoundedCornerShape(4.dp),  //<- used by `DropdownMenu`
        large = RoundedCornerShape(0.dp)
    )
    

    您可以在主题中更改此值,也可以仅在 DropdownMenu 中覆盖中等形状。
    比如:

        MaterialTheme(shapes = MaterialTheme.shapes.copy(medium = RoundedCornerShape(16.dp))) {
            DropdownMenu(
                expanded = menuExpanded,
                onDismissRequest = {
                    menuExpanded = false
                }                
            ) {
                DropdownMenuItem(onClick = {}) {
                    Text("Item 2")
                }
                DropdownMenuItem(onClick = {}) {
                    Text("Item 3")
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2021-06-23
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多