【问题标题】:Toast behavior on API Level 28?API 级别 28 上的吐司行为?
【发布时间】:2020-01-21 19:05:08
【问题描述】:

我在测试我的应用时注意到 API 28 中的 Toast 行为有所不同

以下代码在 Android 9 上不显示任何内容,而在旧设备上显示消息

Toast toast = Toast.makeText(this,"TEST",Toast.LENGTH_SHORT);
toast.show();
toast.show();

是否有可能克服这一点并在短时间内发生多个事件时实际显示吐司?

【问题讨论】:

  • 您可能会发现 my Toast wrapper useful - 当需要显示新的 toast 时,它会取消现有的 toast。
  • 完美,@Richard。它在我测试过的所有 API 版本上表现相同。谢谢!
  • 很高兴它有帮助 - 我已经在许多生产应用程序中使用它很长时间了。

标签: android toast android-toast


【解决方案1】:

您可以使用倒数计时器,这在我的测试中一直有效到 100 毫秒。低于 100 毫秒的吐司不会出现。如果您需要更快,需要继承 Toast 恕我直言。

public static void showToast(Context context, String message, int duration) {
    Toast toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);

    new CountDownTimer(duration, duration) {
        public void onTick(long millisUntilFinished) {

        }
        public void onFinish() {
            toast.cancel();
        }
    }.start();

    toast.show();
}

【讨论】:

  • 谢谢,思南,但这并不能回答我的问题。您绝对不能在 100 毫秒内使用 100。第三个参数是 Toast.LENGTH_SHORT 或 Toast.LENGTH_LONG
  • @AlexBusuioc 你是对的。看看我编辑的答案。希望这会有所帮助。
猜你喜欢
  • 2019-04-16
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 1970-01-01
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多