Android 小吃条vs吐司

Android 小吃条vs吐司,android,toast,snackbar,Android,Toast,Snackbar,我是android开发的新手,我对上下文和视图感到困惑。所以,我只想知道为什么我们在Snackbar中传递视图,而在Toast中传递上下文,同时使用两者来显示通知/消息。Snackbar遍历视图树,直到它决定放置在哪里。然后,它将自身附加到视图树。因此,它需要一个附加到视图树的视图作为起点 Toast只是在屏幕上显示一条浮动消息。它不需要附加到任何视图,因此不需要视图对象。但是,它确实需要一些平台知识,因此上下文是合适的。aToast仅显示在当时屏幕上出现的任何内容的顶部。它与当时屏幕上出现的内

我是android开发的新手,我对上下文和视图感到困惑。所以,我只想知道为什么我们在Snackbar中传递视图,而在Toast中传递上下文,同时使用两者来显示通知/消息。

Snackbar
遍历视图树,直到它决定放置在哪里。然后,它将自身附加到视图树。因此,它需要一个附加到视图树的视图作为起点


Toast
只是在屏幕上显示一条浮动消息。它不需要附加到任何视图,因此不需要视图对象。但是,它确实需要一些平台知识,因此
上下文
是合适的。

a
Toast
仅显示在当时屏幕上出现的任何内容的顶部。它与当时屏幕上出现的内容没有任何联系。事实上,您的
Toast
可以显示在另一个完全不同的应用程序上
Toast
需要
上下文
,因为您可以将资源ID作为参数传递,Android需要访问应用程序的资源(通过
上下文
)。Android还需要一个
上下文
,因为它将您的
Toast
绑定到您的应用程序,以便在某些情况下能够清理它

Snackbar
与应用程序的UI的耦合更紧密。
Snackbar
是一个与应用程序的视图继承权相关联的
视图。创建
Snackbar
时,将
视图
作为参数传递,以便Android可以扫描视图继承人权限,在视图继承人权限内找到适当的位置来创建
Snackbar
。如果视图继承人权限包含
协调人布局
,则
Snackbar
会获得其他行为(滑动以取消,将浮动操作按钮移开)。如果没有用户界面,
Snackbar
将无法显示,而
Snackbar
也无法显示在其他应用程序的用户界面中