gpt4 book ai didi

flutter - flutter 网络中的路由具有意外行为

转载 作者:行者123 更新时间:2023-12-02 04:22:59 24 4
gpt4 key购买 nike

当在flutter中使用内置的脚手架/ app bar进行flutter web时,使用导航器推送新路线时,app栏中仍显示后退按钮,浏览器中的URL不变。这意味着浏览器的后退按钮不起作用,这是一个非常奇怪的UX。有办法解决这个问题吗?

我已经尝试过以多种不同方式推送路线(pushReplacement摆脱了后退按钮,但浏览器的后退按钮仍然无法使用)

主屏幕.dart

  @override
State<StatefulWidget> createState() {
return HomeScreenState();
}
}

class HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
endDrawer: Navbar.buildDrawer(context),
appBar: Navbar.buldNavbar(context),
body: _buildBody(),
);
}

Widget _buildBody(){
return Text('Home');
}
}

导航栏
  static Drawer buildDrawer(BuildContext context) {
return Drawer(
child: ListView(
children: <Widget>[
ListTile(
title: Text('Home'),
leading: Icon(Icons.home),
onTap: (){
Navigator.of(context).pushReplacementNamed('/');
},
),
ListTile(
title: Text('About Us'),
leading: Icon(Icons.people),
onTap: (){
Navigator.of(context).pushReplacementNamed('/about');
},
),
ListTile(
title: Text('Contact'),
leading: Icon(Icons.contact_mail),
onTap: (){
Navigator.of(context).pushReplacementNamed('/contact');
},
)
],
),
);
}

static AppBar buldNavbar(BuildContext context) {
return AppBar(
title: FlatButton(
child: Padding(
padding: EdgeInsets.all(8),
child: Image.asset('assets/whiteLogo.png'),
),
onPressed: () {
Navigator.of(context).pushNamed('/');
},
),
);
}
}

我希望路由会更改浏览器中的url,使我们能够使用后退按钮和普通路由的其他功能,但实际结果是在浏览器中显示相同的路由,并且必须使用自动AppBar后退按钮

最佳答案

看起来 flutter 的更新现在可以解决此问题。现在,使用导航器时会发生预期的行为。

关于flutter - flutter 网络中的路由具有意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58067617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com