Skip to content

快显消息 (Snackbar)

源:Snackbar

Snackbar 在屏幕底部提供关于应用流程的简短消息。

Snackbar 示例


核心结构 (Anatomy)

结构图

  1. 容器 | 2. 文本内容 | 3. 操作按钮 (可选) | 4. 关闭图标 (可选)

代码实现

基础用法

kotlin
Snackbar.make(view, "消息已发送", Snackbar.LENGTH_SHORT).show()
kotlin
Snackbar.make(view, "文件已删除", Snackbar.LENGTH_LONG)
    .setAction("撤销") {
        // 处理撤销逻辑
    }
    .show()

交互增强

1. 锚定视图 (Anchoring)

你可以让 Snackbar 出现在特定视图(如 FAB)之上,避免遮挡。

kotlin
snackbar.setAnchorView(floatingActionButton)

2. 自动躲避

配合 CoordinatorLayout

如果你的根布局是 CoordinatorLayout,当 Snackbar 弹出时,FAB 会自动上移,且 Snackbar 支持侧滑删除手势。


主题化

M3 的 Snackbar 默认使用反色方案(Dark Surface on Light Theme),你可以通过 snackbarStyle 自定义背景和圆角。

xml
<style name="Widget.App.Snackbar" parent="Widget.Material3.Snackbar">
    <item name="backgroundTint">@color/my_custom_bg</item>
    <item name="actionTextColorAlpha">1.0</item>
</style>