如何解决Flutter:如何从ongenerate Route注销?
我将 Tabbar 和 onGenerateRoute
用于一个屏幕中的多个视图,而无需更改 AppBar 和 TabBar。
**
这是我的代码(主屏幕模板)-
**
.....
....
return Scaffold(
appBar: PreferredSize(
preferredSize: Size(_width,100),child: AppBar(
automaticallyImplyLeading: false,backgroundColor: blue,bottom: PreferredSize(
preferredSize: Size(_width,40),child: Stack(
children: [
Center(
child: logoIcon(
75.0,75.0,Colors.white,),Positioned(
right: 15.0,child: IconButton(
icon: Icon(
Icons.notifications_none,color: Colors.white,size: 32.0,onPressed: () {}),)
],shape: RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(
bottom: Radius.circular(50),body: CustomMainBody(
child: Container(
height: _height * 0.90,width: _width,child: TabBarView(
controller: _tabController,children: [
Navigator(
onGenerateRoute: (settings) => MaterialPageRoute(
builder: (context) => HomePage(
changeTabCallBack: (index) => changeTabbar(index)),settings: settings,Navigator(
onGenerateRoute: (settings) => MaterialPageRoute(
builder: (context) => RateComparision(),Navigator(
onGenerateRoute: (settings) => MaterialPageRoute(
builder: (context) => DealOffers(),Navigator(
onGenerateRoute: (settings) => MaterialPageRoute(
builder: (context) => CustomDrawer(
changeTabCallBack: (index) => changeTabbar(index)),],bottomNavigationBar: Container(
color: blue,child: TabBar(
indicatorColor: Colors.white,labelColor: Colors.black,controller: _tabController,tabs: [
Tab(
child: Image.asset(
"assets/images/home-nav.png",height: 26,width: 26,Tab(
child: Image.asset(
"assets/images/rate-nav.png",Tab(
child: Image.asset(
"assets/images/OffersNavigation.png",Tab(
child: Icon(
Icons.menu,);
在自定义抽屉页面中,我添加了一个注销项。但是当我通过注销功能进入登录屏幕时,AppBar 和 TabBar 没有消失(主屏幕模板留在这里)。
我该如何解决这个问题?
解决方法
在主屏幕模板上创建回调
void logout() {
Navigator.of(context)
.push(CupertinoPageRoute(builder: (context) => LoginScreen()));
}
传递值并从抽屉注销按钮调用它
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。