-1

我在 Snackbars 中看到过这个findViewById(android.R.id.content)论点。我们不能传递getContext()方法,因为它需要一个View参数。我在网上看到程序员在 Snackbar 内部传递这个参数,它的真正含义是什么?

此外,由于它询问一个View参数,我可以像我在我的 xml 文件中的任何视图一样传递,例如 anyimageview或 any videoView。如果我将这些作为参数传递,我的代码还能工作吗?如果是的话,在代码中是不是有点无法解释到底发生了什么?

4

1 回答 1

0

这到底是什么意思?

它要求托管活动查找 ID 为 的小部件android.R.id.content。所有活动都有其中之一,由框架Activity实现及其关联设置Window。它代表活动的主要内容区域。

关于真正发生的事情,在代码中是不是有点难以解释?

当然欢迎您在代码中添加注释以解释您的选择。

Snackbar文档解释了 的作用View

Snackbar 将尝试从给定的值中找到一个父视图来保存 Snackbar 的视图。Snackbar 将沿着视图树向上寻找合适的父级,该父级定义为 CoordinatorLayout 或窗口装饰的内容视图,以先到者为准。

在视图层次结构中拥有 CoordinatorLayout 允许 Snackbar 启用某些功能,例如滑动关闭和自动移动小部件。

考虑到这一点...

我可以像我在我的 xml 文件中的任何视图一样传递,例如,任何 imageview 或任何 videoView。如果我将这些作为参数传递,我的代码还能工作吗?

也许。这在一定程度上取决于您的应用程序的 UI。如果CoordinatorLayout您想与 一起使用特定内容,请将Snackbar其(或孩子)传递给make(). 否则,任何小部件都应该工作。

于 2019-02-17T15:32:11.480 回答