小吃店的持续时间在某些设备上无法正常工作

时间:2018-12-06 14:27:31

标签: android kotlin android-design-library

我有一种简单的方法可以显示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
}

代码在模拟器和某些设备上可以完美运行。但是,当我在Samsung和Xiaomi(使用MIUI,Android设备不存在此问题)上运行相同的代码时,它几乎没有任何原因立即隐藏。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

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

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

这由Snackbar类调用,在正常运行的设备上为false,在不正常运行的设备上为true。有人知道吗?

因此,在我的系统设置中禁用了lastpass之后,小吃栏现在会按需要设置动画。那是如何工作的,这太疯狂了。 Nova启动器具有相同的影响。我猜想任何启用了辅助功能的服务都将导致快餐栏动画无法正常工作。