Flutter 我想在不使用抽屉的情况下导航到主屏幕

Flutter 我想在不使用抽屉的情况下导航到主屏幕,flutter,dart,flutter-navigation,Flutter,Dart,Flutter Navigation,在传递下面的字符串属性时,导航是否可以直接转到主屏幕而不是弹出(抽屉) 无法使用PushName传递cityName属性。 如果有办法,请告诉我 按下按钮后,我可以使用navigator.pop以外的内容吗 import 'package:flutter/material.dart'; import '../const.dart'; class CityScreen extends StatelessWidget { static const String routeName = '/city

在传递下面的字符串属性时,导航是否可以直接转到主屏幕而不是弹出(抽屉)

无法使用PushName传递
cityName
属性。 如果有办法,请告诉我

按下按钮后,我可以使用navigator.pop以外的内容吗

import 'package:flutter/material.dart';
import '../const.dart';

class CityScreen extends StatelessWidget {
static const String routeName = '/cityScreen';

@override
Widget build(BuildContext context) {
    final _mycontroller = TextEditingController();
    String cityName;

    return Scaffold(
      body: Container(
        decoration: BoxDecoration(
            image: DecorationImage(
          image: AssetImage('assets/city.jpg'),
          colorFilter: ColorFilter.mode(
              Colors.black.withOpacity(0.6), BlendMode.dstATop),
          fit: BoxFit.cover,
        )),
        constraints: BoxConstraints.expand(),
        child: SafeArea(
          child: Column(
            children: <Widget>[
              Align(
                alignment: Alignment.topLeft,
                child: FlatButton(
                  onPressed: () {
                    Navigator.pop(context);
                  },
                  child: Icon(Icons.arrow_back_ios, size: 30),
                ),
              ),
              Container(
                padding: EdgeInsets.all(25),
                child: TextField(
                  decoration: InputDecoration(
                      icon: Icon(Icons.search),
                      filled: true,
                      hintText: 'Enter City Name'),
                  controller: _mycontroller,
                  autofocus: true,
                  onChanged: (value) {
                   cityName = value;
                  },
                ),
              ),
              FlatButton(
                shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(18.0),
                    side: BorderSide(color: Colors.white)),
                onPressed: () {
                  Navigator.pop(context, cityName);
                },
                child: Text(
                  'Click here',
                  style: kbuttonStyle,
                ),
              )
            ],
          ),
        ),
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“../const.dart”;
类CityScreen扩展了无状态小部件{
静态常量字符串routeName='/cityScreen';
@凌驾
小部件构建(构建上下文){
final _mycontroller=TextEditingController();
字符串cityName;
返回脚手架(
主体:容器(
装饰:盒子装饰(
图像:装饰图像(
图片:AssetImage('assets/city.jpg'),
colorFilter:colorFilter.mode(
颜色。黑色。不透明度(0.6),混合模式。DSTOP),
适合:BoxFit.cover,
)),
约束:BoxConstraints.expand(),
儿童:安全区(
子:列(
儿童:[
对齐(
对齐:alignment.topLeft,
孩子:扁平按钮(
已按下:(){
Navigator.pop(上下文);
},
子:图标(Icons.arrow\u back\u ios,大小:30),
),
),
容器(
填充:边缘设置。全部(25),
孩子:TextField(
装饰:输入装饰(
图标:图标(Icons.search),
是的,
hintText:“输入城市名称”),
控制器:_mycontroller,
自动对焦:对,
一旦更改:(值){
cityName=值;
},
),
),
扁平按钮(
形状:圆形矩形边框(
边界半径:边界半径。圆形(18.0),
边:边框边(颜色:Colors.white)),
已按下:(){
pop(上下文,cityName);
},
子:文本(
“单击此处”,
样式:kbuttonStyle,
),
)
],
),
),
),
);
}
}

您可以在pushreplacementname/pushNamed中传递参数,如下所示:

 Navigator.pushReplacementNamed(
      context,
      "dashboard_route",
      arguments: "cityName",
    );
然后在dashboard Widget build函数中,执行以下操作以获取cityName:

final String cityName = ModalRoute.of(context).settings.arguments;