相关疑难解决方法(0)

替换MaterialApp中的初始路线而不动画?

我们的应用程序是建立在顶部Scaffold和这一点,我们已经能够使用内提供的电话,以适应大多数的我们的路线和导航的要求NavigatorState(pushNamed(),pushReplacementNamed(),等).我们不想要的是,当用户从我们的抽屉(导航)菜单中选择一个项目时,可以使用任何类型的"推送"动画.我们希望从导航菜单中单击目标屏幕,以有效地成为堆栈的新初始路径.目前我们正在使用pushReplacementNamed()来确保应用栏中没有后退箭头.但是,右下方的幻灯片意味着正在构建堆栈.

在没有动画的情况下更改初始路线的最佳选择是什么?我们可以这样做同时同时关闭抽屉的动画吗?或者我们是否正在考虑这样的情况:我们需要从导航器转移到仅使用单个脚手架并在用户想要更换屏幕时直接更新"正文"?

我们注意到有一个replace()电话NavigatorState我们认为它可能是开始寻找的正确位置,但目前还不清楚如何访问我们最初建立的各种路线new MaterialApp().replaceNamed()可能有点像顺序;-)

提前致谢!

dart flutter

24
推荐指数
2
解决办法
1万
查看次数

如何删除默认导航路线动画

我在颤振文档中给出的页面路由代码下面

// Within the `FirstRoute` widget
onPressed: () {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => SecondRoute()),
  );
}
Run Code Online (Sandbox Code Playgroud)

但是它在推送和弹出路由时提供了一些动画。

对于Android,页面的入口过渡将页面向上滑动并淡入。出口过渡相同,但相反。

过渡适应平台,在iOS上,页面从右侧滑入反向退出。当另一个页面进入以覆盖它时,页面也会以视差向左移动。(这些方向在具有从右到左阅读方向的环境中翻转。)

有没有办法在没有任何动画的情况下路由到下一页?

编辑: 请检查整个代码:

class MyApp extends StatelessWidget {
  final routes = <String, WidgetBuilder>{
    SecondRoute.tag: (context) => SecondRoute(),
  };

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "Flutter Routes",
      home: new FirstRoute(),
      routes: routes,
      onGenerateRoute: (routeSettings) {
        if (routeSettings.name == SecondRoute.tag)
          return PageRouteBuilder(pageBuilder: (_, a1, a2) => SecondRoute());

        return null;
      },
    );
  }
}

class FirstRoute extends StatelessWidget {
  @override
  Widget …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-animation flutter-navigation

9
推荐指数
2
解决办法
7629
查看次数

Flutter 如何在没有动画的情况下弹出屏幕

基本上我想要Navigator.of(context).pop();但没有动画。

通过阅读文档,我看到您只能在推送路线时覆盖此动画。就我而言,我不知道在删除路线时是否要显示流行动画,因此我需要一个解决方案,允许我在调用时指定是否需要此动画pop()

这是可能的吗?

flutter

6
推荐指数
1
解决办法
2067
查看次数

使用带有Google Maps的两个屏幕返回到App的问题

flutte谷歌地图似乎是一个更严重的错误。是#25653的副本

8月8日更新:当前进展:

试图用Sukhi修复该错误,但他无法重现该错误。我的同事们都可以复制它,但是无法修复它:P。还有其他人设法复制它吗?

用我的代码创建了一个github存储库,并更新了“到目前为止我尝试过的”

8月5日更新,进一步解决了实际问题

问题说明:

我的问题仅发生在调试发布的真实设备(而非模拟器)上的IO上。

我的确使用带有某些标记的google Maps小部件。轻按“标记”会打开另一个屏幕,其中包含更多信息,另一个Google Maps小部件以及通过URL启动器进行导航的可能性。(我将屏幕缩小为仅显示导致问题的小部件)

从该屏幕离开应用程序(例如,点击开始导航或转到IOs主屏幕),然后返回该应用程序会导致问题。

如果我再次返回到应用程序主屏幕,则仅显示白色屏幕。

加成:

将Google Maps Widget包装在Flex Widget(列或行)的信息屏幕中,甚至会导致更糟的行为。返回到Apps HomeScreen时,Flex窗口小部件的其他内容(例如带有文本的容器)将保持可见。

到目前为止,我尝试使它起作用但不起作用的方法是:

  1. 发布模式=>相同问题
  2. 禁用的导航过渡(像这样
  3. 异步等待网址启动
  4. 基于IO 12.3和12.4
  5. 在Future Builder中构建Maps窗口小部件

重现步骤:

  1. 安装google_maps_flutter 0.5.20 + 1url_launcher:5.0.3(我知道它不是最新的,但是那不是问题)

  2. 在不稳定的项目中复制CodeSnippet并在IO上构建。

  3. 点击标记

  4. 点击按钮“开始导航”或退出应用
  5. 在左上角的Apple Maps中点击以重定向到该应用程序或重新打开该应用程序
  6. 在信息屏幕中返回,点击左上角的左箭头
  7. 仅白屏可见

码:

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:url_launcher/url_launcher.dart';
import 'dart:io';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root …
Run Code Online (Sandbox Code Playgroud)

flutter google-maps-flutter

5
推荐指数
1
解决办法
324
查看次数