【问题标题】:What is the actual duration of a Snackbar with LENGTH_LONG带有 LENGTH_LONG 的 Snackbar 的实际持续时间是多少
【发布时间】:2019-10-29 02:48:39
【问题描述】:

自从我将我的 Android 项目迁移到 AndroidX 后,我收到以下 lint 错误:

Error: Must be one of: Snackbar.LENGTH_INDEFINITE, Snackbar.LENGTH_SHORT, Snackbar.LENGTH_LONG [WrongConstant]
        Snackbar snackbar = Snackbar.make(rootView, message, sticky ? Snackbar.LENGTH_INDEFINITE : 4500

因此,我现在使用Snackbar.LENGTH_LONG,而不是定义自定义持续时间(4500 毫秒)。 由于我正在实施一些基于时间的操作,这取决于小吃栏的可见时间,因此我需要知道Snackbar.LENGTH_LONG 的实际持续时间(以毫秒为单位)。如何找出该值?

docs 在这里并不是很有帮助:

在短时间内显示 Snackbar。

【问题讨论】:

  • 我认为您也可以使用 setDuration 和自定义值(以毫秒为单位)。
  • 你是对的,它仍然可以通过 Snackbar.setDuration() 使用自定义毫秒。他们只限制在 Snackbar.make(...) 中使用自定义值。

标签: android androidx lint android-snackbar


【解决方案1】:

在源代码中摸索一番后,您会在SnackbarManager 中找到这些常量:

private static final int SHORT_DURATION_MS = 1500;
private static final int LONG_DURATION_MS = 2750;

所以要回答你的问题,长长度的实际持续时间是 2750 毫秒。


班级com.google.android.material.snackbar.SnackbarManager:

【讨论】:

  • 非常感谢!我实际上试图在源代码中查找它,但无法以某种方式找到值。
  • 这实际上非常有用,因为我在 Gradle 3.6.4 中使用 Snackbar 长度常量时不断收到 lint 错误。
【解决方案2】:

如 jbarat 所述,但这是用户询问的源代码中的内容。无法在线程中回复,因此将其发布为答案。 2.75 Seconds

【讨论】:

    猜你喜欢
    • 2011-12-19
    • 2016-03-01
    • 1970-01-01
    • 2010-11-27
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    相关资源
    最近更新 更多