gpt4 book ai didi

dart - 防止在 flutter 中轻击抽屉项时将页面导航到当前页面

转载 作者:行者123 更新时间:2023-12-03 02:53:15 26 4
gpt4 key购买 nike

假设我有一个抽屉,并且该应用程序已经在“主页”页面中。

点击抽屉中的“设置”项目时,它将再次导航到“设置”。

如何防止它,防止导航到与当前页面相同的页面。

Widget build(BuildContext context) {
return new Drawer(
child: new ListView(
children: <Widget>[
new ListTile(
title: new Text("Home"),
trailing: new Icon(Icons.local_florist),
onTap: (){
Navigator.of(context).pop();
Navigator.of(context).push(new MaterialPageRoute(builder: (BuildContext context) => new HomePage()));
Navigator.pushNamedAndRemoveUntil(context, '/', (_) => false);
},
),
new ListTile(
title: new Text("Search"),
trailing: new Icon(Icons.search),
onTap: (){
Navigator.of(context).pop();
Navigator.of(context).push(new MaterialPageRoute(builder: (BuildContext context) => new SearchPage('Search Web')));
},
),
new Divider(),
new ListTile(
title: new Text("Settings"),
trailing: new Icon(Icons.settings),
onTap: (){
Navigator.of(context).pop();
Navigator.of(context).push(new MaterialPageRoute(builder: (BuildContext context) => new SettingsPage('Settings Center')));
},
),
],
),
);
}

最佳答案

一个相当简单的解决方案是将当前页面的按钮禁用。您可以对所有页面进行枚举并传递“currentPage”,然后在构建列表图块时可以执行onTap: currentPage == Pages.Search ? null : () { .... }之类的操作

如果您想做一些更可配置的操作,则可以像我为应用程序做的一样-对于我的抽屉菜单,我有一个枚举列出了所有选项(例如enum DrawerSections { home, profile, settings, about, logout },我的抽屉类采用了部分列表)显示,因为我不想在每种情况下都显示所有菜单部分,您可以传入类似DrawerSectionSpec之类的列表,该列表具有DrawerSectionbool enabled

关于dart - 防止在 flutter 中轻击抽屉项时将页面导航到当前页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53496238/

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