如何解决后退按钮重复,显示时未进行配置Flutter
我正在Flutter中开发一个应用程序,并且在某个页面上添加了一个“后退”按钮,现在该按钮在代码中随处可见。如何确保此按钮仅显示在我想要的页面中?按下返回按钮后,代码不完整吗?我在创建后退按钮的主页面和页面下贴下来,这是我添加后退按钮的唯一课程。
代码
import 'package:MECTS_Mobile_Application/Home/routes.dart';
import 'package:flutter/material.dart';
class Home extends StatefulWidget{
@override
State<StatefulWidget> createState() => new _Home();
}
class _Home extends State<Home> {
var services = [
'Track Routes','View Vehicles','View Reports',];
var images = [
'imageapp/cardone.png','imageapp/cardtwo.png','imageapp/cardthree.png',];
@override
Widget build(BuildContext context) {
void move(){
Navigator.of(context).pushReplacementNamed(Routes.routeName);
}
return GridView.builder(
padding: const EdgeInsets.symmetric(vertical:80.0),itemCount: 3,gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1,childAspectRatio: MediaQuery.of(context).size.width/(MediaQuery.of(context).size.height/6),),itemBuilder: (BuildContext context,int index){
return Card(
child: Column(children: <Widget> [
SizedBox(
height: 10,width: 20,Image.asset(images[index],height:65,width: 750,Padding(
padding: EdgeInsets.all(10),child: GestureDetector(
onTap: move,child: Text(services[index],style: TextStyle(fontSize: 18,fontWeight: FontWeight.bold),textAlign: TextAlign.center,)
)
),],);
},);
}
}
主页:
import 'package:MECTS_Mobile_Application/Authentication/login_page.dart';
import 'package:MECTS_Mobile_Application/Authentication/register_page.dart';
import 'package:MECTS_Mobile_Application/Home/reports.dart';
import 'package:MECTS_Mobile_Application/Home/splashscreen.dart';
import 'package:MECTS_Mobile_Application/Home/vehicles.dart';
import 'Home/routes.dart';
import 'root.dart';
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'MECTS',theme: new ThemeData(primarySwatch: Colors.cyan),home: new SplashMECTSScreen(),routes: {
LoginPage.routeName: (ctx) => LoginPage(),RegisterPage.routeName: (ctx) => RegisterPage(),Routes.routeName: (ctx) => Routes(),Reports.routeName: (ctx) => Reports(),Vehicles.routeName: (ctx) => Vehicles(),RootPage.routeName: (ctx) => RootPage(),},);
}
}
解决方法
解决我问题的方法是:
Navigator.of(context).popAndPushNamed(RootPage.routeName);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。