【问题标题】:Snackbar duration does not work properly on some devicesSnackbar 持续时间在某些设备上无法正常工作
【发布时间】:2018-12-06 14:27:30
【问题描述】:

我有一个简单的方法来显示来自android.support.design.widget.Snackbar 的 Snackbar。我想在3秒后隐藏它,所以我写道:

fun showSnackbar(text: CharSequence, view:View): Snackbar {
    val snackbar = Snackbar
        .make(view, text, 3000)

    snackbar.view.setBackgroundColor(ContextCompat.getColor(view.context, R.color.accent_color))
    snackbar.show()
    return snackbar
}

代码在模拟器和某些设备上完美运行。但是当我在三星和小米上运行相同的代码时(使用 MIUI,Android 一个设备没有这个问题)它几乎立即隐藏起来,没有任何理由。

我该如何解决?

【问题讨论】:

    标签: android kotlin android-design-library


    【解决方案1】:

    我找到了发生这种情况的原因,但还没有找到解决方法。

    /**
     * Returns true if we should animate the Snackbar view in/out.
     */
    private boolean shouldAnimate() {
        return !mAccessibilityManager.isEnabled();
    }
    

    这是由 Snackbar 类调用的,在工作设备上为 false,在不工作的设备上为 true。有人知道吗?

    因此,在我在系统设置中禁用 lastpass 后,可访问性快餐栏现在可以正常显示动画。这太疯狂了。 Nova 发射器具有相同的效果。我猜任何启用的可访问性服务都会导致快餐栏动画不起作用。

    【讨论】:

      猜你喜欢
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多