Flutter 小部件显示在所有屏幕上

Posted

技术标签:

【中文标题】Flutter 小部件显示在所有屏幕上【英文标题】:Flutter widget show on all screen 【发布时间】:2021-09-17 18:10:24 【问题描述】:

我有音乐列表屏幕,当按下播放音乐时,小音乐播放器显示在屏幕末尾。如果单击或向上滚动,将显示全屏音乐播放器。用户可以单击按钮折叠全屏音乐播放器。我正在使用sliding_up_panel 插件来实现这一点。

所以我的问题是,如果正在播放音乐,我想在应用程序的每个屏幕上显示小型音乐播放器。

我可以知道如何将 SlidingUpPanel 放在哪里吗?

问候, 亚历克斯

【问题讨论】:

【参考方案1】:

它需要进入或高于或进入您的路由器。你可以把它放在Stack widget 中,其中一层是你的播放器小部件,另一层是你的路由视图。

【讨论】:

就像我说的我使用sliding_up_panel插件实现的,并且需要放置每个想要显示播放器的屏幕。我的问题是我想在每个屏幕上显示播放器,我不想在每个屏幕上放置那个小部件。我想将播放器放在主小部件上,只想更改类似的内容。 您在哪里更改视图/您的视图路由器在哪里?如果您的应用有一个*** Scaffold 小部件并且在“body:”处路由,则可以考虑使用 Scaffold 的 bottomSheet:。这将做你所描述的。但是,如果您有多个 Scaffolds() 并且您的路由器为您的每个视图交换 Scaffolds(),您可以将 Stack() 与您的播放器放在顶部,并将您的路由视图放在底部。无论您在哪里进行视图路由,您的播放器只需要在小部件树中的某个位置上方即可。 (不知道为什么我不能编辑我上面的评论)...*Scaffold 的 bottomSheet: 用于您的 slip_up_panel ... *将您的 slip_up_panel 播放器放在顶部... 您好 Pat9RB,感谢您的评论。我会尽力告诉你解决方案。

以上是关于Flutter 小部件显示在所有屏幕上的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 动态小部件定位

Flutter:检测任何在屏幕上不可见但在小部件树中的小部件的重建

在 Flutter 中更改 Drawer 小部件的顶部颜色

根据父级大小按比例缩小小部件中的所有子级

在 Flutter 中使用条件选择不同的小部件集

如何在顶部显示 Flutter SnackBar 小部件?