我已经在Snackbars中看到了这个findViewById(android.R.id.content)
参数的传递。我们无法通过getContext()
方法,因为它需要一个View
参数。我在互联网上看到程序员在Snackbar内部传递了这个参数,这真的意味着什么?
此外,由于它询问一个View
参数,因此我可以像我在xml文件中的任何视图一样通过,例如,任何imageview
或任何videoView
。如果我将这些参数作为参数传递,我的代码是否仍然有效?如果是的话,那么在代码中关于实际发生的事情是否有点解释?
答案 0 :(得分:0)
这到底是什么意思?
它要求托管活动找到ID为android.R.id.content
的窗口小部件。所有活动都有其中之一,由框架Activity
的实现及其相关的Window
设置。它代表了活动的主要内容区域。
关于实际发生的事情在代码中是否有点解释?
当然,欢迎您在代码中添加注释以解释您的选择。
The Snackbar
documentation解释了View
的作用:
Snackbar将尝试从提供给view的值中找到一个父视图来保存Snackbar的视图。 Snackbar将沿着视图树走,试图找到合适的父级,将其定义为CoordinatorLayout或窗口装饰的内容视图,以先到者为准。
在视图层次结构中具有CoordinatorLayout可使Snackbar启用某些功能,例如滑动到关闭和自动移动小部件。
考虑到这一点...
我可以像我在xml文件中拥有的任何视图一样通过吗,例如任何imageview或videoView。如果我将这些参数作为参数传递,我的代码还能继续工作吗?
也许。这取决于您的应用程序的用户界面。如果要与CoordinatorLayout
一起使用特定的Snackbar
,请将其(或孩子)传递给make()
。否则,任何小部件都应该起作用。