【问题标题】:Why Jetpack Compose AppBar overlaps its shadow为什么 Jetpack Compose AppBar 会重叠它的影子
【发布时间】:2021-12-23 17:44:55
【问题描述】:

我希望 AppBar 在底部边缘下方显示默认阴影,但 appbar 出于某种原因剪辑了它的阴影:

从 LayoutInspector 捕获的视图层次结构:

我的代码:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            MyAppTheme {
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = Color.Cyan,
                ) {
                    Box {
                        TopAppBar(
                            title = { Text("AppBar title") }
                        )
                    }
                }
            }
        }
    }
}

为什么 AppBar 阴影会这样?我使用不正确吗?我该如何解决这个问题?

UPD: 我的坏 - 阴影按预期工作。我只是没有正确检查。默认阴影很难在视觉上检测到:

【问题讨论】:

  • 尝试将高程参数更改为默认值以外的某个值(即 4 dp)。尝试将其设置为 20,看看是否有区别。
  • @Johann 不起作用。阴影仍被 AppBar 剪裁。

标签: android android-jetpack-compose material-components-android appbar


【解决方案1】:

尝试将此代码添加到Boxmodifier = Modifier.fillMaxSize()Box 在你的代码中消除你的影子

示例(我在此处添加了白色以更好地查看阴影)

Surface(
    modifier = Modifier.fillMaxSize(),
    color = Color.White,
) {
    Box(modifier = Modifier.fillMaxSize()) {
        TopAppBar(
            backgroundColor = Color.White,
            title = { Text("AppBar title") }
        )
    }
}

结果

【讨论】:

  • 那行得通!谢谢你。但是默认阴影很难从视觉上检测到。令人困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2022-12-14
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
相关资源
最近更新 更多