Snackbar

Snackbar 是屏幕底部默认显示的计时警报。 它会在可配置的持续时间后被消除。 Snackbar 完全可自定义,可以定位到任何 IView

Snackbar 通知用户应用已执行或将执行的进程。 它暂时显示在屏幕底部。

特定于平台的初始化

要访问 Snackbar 功能,需执行以下特定于平台的设置。

无需设置。

语法

使用 C# 调用 Snackbar

C#

若要显示 Snackbar,需要使用静态方法 Make 创建它:

using CommunityToolkit.Maui.Alerts;

CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();

var snackbarOptions = new SnackbarOptions
{
    BackgroundColor = Colors.Red,
    TextColor = Colors.Green,
    ActionButtonTextColor = Colors.Yellow,
    CornerRadius = new CornerRadius(10),
    Font = Font.SystemFontOfSize(14),
    ActionButtonFont = Font.SystemFontOfSize(14),
    CharacterSpacing = 0.5
};

string text = "This is a Snackbar";
string actionButtonText = "Click Here to Dismiss";
Action action = async () => await DisplayAlert("Snackbar ActionButton Tapped", "The user has tapped the Snackbar ActionButton", "OK");
TimeSpan duration = TimeSpan.FromSeconds(3);

var snackbar = Snackbar.Make(text, action, actionButtonText, duration, snackbarOptions);

await snackbar.Show(cancellationTokenSource.Token);

调用 Snackbar.Make() 时,需要其参数 string text。 其他所有参数都是可选参数。

以下屏幕截图显示了生成的 Snackbar:

还有一个扩展方法,将 Snackbar 定位到任何 VisualElement

await MyVisualElement.DisplaySnackbar("Snackbar is awesome. It is anchored to MyVisualElement");

警告

Windows 上的 Snackbar 无法定位到 VisualElement,并且始终显示为默认 Windows 通知。

SnackBar 包含两个事件:

  • public static event EventHandler Shown
  • public static event EventHandler Dismissed

它还包含属性 public static bool IsShown { get; }

Snackbar.Shown += (s, e) => { Console.WriteLine(Snackbar.IsShown); };
Snackbar.Dismissed += (s, e) => { Console.WriteLine(Snackbar.IsShown); };

属性

属性 类型​​ 说明
文本 string 短信。 必需
操作 Action 单击操作按钮时要调用的操作。
ActionButtonText string 操作按钮文本。
定位点 IView Snackbar 定位点。 Snackbar 显示在此视图附近。 null 时,Snackbar 将显示在屏幕底部。
持续时间 TimeSpan Snackbar 持续时间。
VisualOptions SnackbarOptions Snackbar 视觉对象选项。

SnackbarOptions

SnackbarOptions 允许自定义默认 Snackbar 样式。

属性

属性 类型​​ 说明 默认值
CharacterSpacing double 消息字符间距。 0.0d
字体 Font 消息字体。 Font.SystemFontOfSize(14)
TextColor Color 消息文本颜色。 Colors.Black
ActionButtonFont Font 操作按钮字体。 Font.SystemFontOfSize(14)
ActionButtonTextColor Color 操作按钮文本颜色。 Colors.Black
BackgroundColor Color 背景色。 Colors.LightGray
CornerRadius CornerRadius 圆角半径。 new CornerRadius(4, 4, 4, 4)

方法

方法 说明
显示 显示请求的 Snackbar。 这将消除当前显示的任何 Snackbar
取消 消除请求的 Snackbar

注意

只能同时显示 1 个 Snackbar。 如果第二次调用 Show 方法,则显示第二个 Snackbar 之前,将自动消除第一个 Snackbar

示例

可以在 .NET MAUI 社区工具包示例应用程序中找到此功能的示例。

API

可以在 .NET MAUI 社区工具包 GitHub 存储库查看Snackbar 的源代码