如何显示像弹出窗口一样的小部件

他们是

目前,我有一个网格视图。当我点击它时,我使用英雄小部件导航到另一个页面。

在该页面上,我只有一个容器,用于显示有关该网格图块的信息。

我想要的是让该容器位于网格视图的顶部,而不是其他页面。

我怎么能那样弹出呢?如果可能的话,我宁愿保留英雄动画。网格

容器

他们是

我发布了我最终要执行的操作,因为它有效。

@Nonstapp和@Parth建议的内容除Hero过渡外均适用,因为它仅适用于PageRoutes。

因此,我发现了另一种显示PageRoute的类似弹出窗口的方法。

我正在显示的信息小部件:

return Padding(
  padding: EdgeInsets.fromLTRB(
      MediaQuery.of(context).size.width / 8,
      MediaQuery.of(context).size.height / 4,
      MediaQuery.of(context).size.width / 8,
      0),
  child: Material(
    color: Colors.transparent,
    child: ...

填充显然是用于定位的,而Material小部件则是为其提供Material样式和已启用的部件,例如IconButton。为“材质”小部件赋予透明颜色。

这就是我所说的:

void seeDetails(BuildContext context, Book book) {
    Navigator.push(
      context,
      PageRouteBuilder(
        fullscreenDialog: true,
        opaque: false,
        pageBuilder: (_, __, ___) => ChangeNotifierProvider.value(
          value: book,
          child: DetailCard(),
        ),
      ),
    );
  }

我使用PageRouter来显示全屏对话框,但是由于在那里的设置,只有信息卡可见。

缺点是我无法启用barrierDismissible,因为我在另一条路线的atm上。

这是我的结果:

结果

但是,真正的解决方案是上面@pskink建议的。它需要更多的设置和调整,并且我与提供者有问题。这是实现它的方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何像代码一样显示熊猫滚动窗口?

像弹出窗口一样以较小的尺寸显示新打开的窗口

Kivy:像小部件一样控制视频深度

如何使Flutter小部件的一部分像堆栈一样

如何使小部件像按钮一样短暂地改变颜色

Qt:如何制作像 QTextField 一样对齐的自定义小部件

如果推荐人是Facebook,则将Facebook像框弹出窗口一样显示

像fancybox一样的AngularJS Iframe弹出窗口?

如何像显示对话框窗口一样阻止窗口

如何在聊天窗口中像Android中的whatsapp一样显示位置消息?

像气球/工具提示小部件一样的Flutter设计Instagram

颤振-左右滚动(像卡片一样)小部件

我可以在Container中溢出小部件以使其像修剪的一样吗?

如何实现UserAccountsDrawerHeader小部件的AccountDetail与带有Flutter的Gmail应用程序一样显示?

迫切需要像弹出窗口一样的Xamarin.IOS模态MessageBox

如何像timeGrid一样在fullCalendar中显示dayGridMonth?

如何像桌面一样显示移动设备?

如何像facebook一样在flutter中显示时差

如何定义可以像堆栈一样弹出和弹出的LIST?

如何像OSX Finder一样将所有explorer.exe窗口同时显示在最前面?

如何检查我的小部件屏幕何时能像Android中的onResume一样在可见性中波动

像Twitter一样显示时间

像潜望镜的心一样弹出,该如何做动画?

如何像 Gmail 一样自定义 confirm() 弹出文本?

使标签栏项像instagram一样弹出viewcontroller

如何创建一个像消息框一样的新窗口?

Flutter 弹出窗口小部件

如何像gnome 3一样在具有活动角的窗口之间切换?

如何在WPF中的MainWindow之前像启动屏幕一样打开子窗口?