Snackbar的LENGTH_LONG实际持续时间是多久?

23

自从我将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而不是定义一个自定义持续时间(4500ms)。由于我正在实现一些基于时间的操作,这取决于snackbar可见的时间有多长,因此我需要知道Snackbar.LENGTH_LONG的实际持续时间(以毫秒为单位)。我该如何找到该值?
这里文档并没有真正提供帮助:

短暂地显示Snackbar。


1
我认为你也可以使用setDuration方法并设置自定义的毫秒值。 - Payam Asefi
你是对的,使用Snackbar.setDuration()仍然可以自定义毫秒。他们只是限制了在Snackbar.make(...)中使用自定义值。 - ice_chrysler
2个回答

49

在源代码中搜索后,您会发现这些常量在 SnackbarManager 中:

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

回答你的问题,长时长的实际持续时间为2750毫秒。


com.google.android.material.snackbar.SnackbarManager

enter image description here


1
非常感谢!我实际上尝试在源代码中查找,但不知何故找不到该值。 - ice_chrysler
这实际上非常有用,因为我在Gradle 3.6.4中使用Snackbar长度常量时一直收到lint错误。 - harveyhans

1

正如jbarat所说,但这是一个用户询问的源代码。无法在主题中回复,因此将其作为答案发布。 2.75秒


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接