用Snackbar替换Toast有时会显示足够长的时间

时间:2015-06-03 18:15:49

标签: java android android-activity android-design-library

我正在使用新Android设计支持库中的新Snackbar替换多个Toast消息。

旧代码:

Context context = getApplicationContext();
Toast.makeText(context, "Deleted...", Toast.LENGTH_LONG).show();

新代码:

View view = findViewById(android.R.id.content);
Snackbar.make(view, "Deleted...", Snackbar.LENGTH_LONG).show();

在大多数情况下,这是正常工作,但我有几个显示的吐司,然后它立即销毁该活动并启动另一个活动。小吃栏在屏幕上显示的时间不够长,因为基础活动和视图的销毁速度太快。

寻找一些替代策略,让Snackbar与Toast类似。

3 个答案:

答案 0 :(得分:3)

Snackbars是您布局的一部分。如果您正在立即转换到另一个活动,那么您可能应该使用Toast消息或

  • 如果您要完成活动并返回上一个活动get a result from the activity,以便新显示的活动可以显示Snackbar
  • 向您的新活动发送额外或特殊意图,以便它可以显示Snackbar。

答案 1 :(得分:1)

我建议创建自定义吐司,其中包含u.i之类的小吃吧。 例如: - https://stackoverflow.com/a/11288522/1384010

答案 2 :(得分:1)

您可以尝试使用此库。这是android默认快餐栏的包装器。 https://github.com/ChathuraHettiarachchi/CSnackBar

Snackbar.with(this,null)
    .type(Type.SUCCESS)
    .message("Profile updated successfully!")
    .duration(Duration.SHORT)
    .show();