当前位置: 首页 > news >正文

PC端网站开发以及设计费用百度竞价托管公司

PC端网站开发以及设计费用,百度竞价托管公司,目前做公司网站有没有用,广州开公司的基本流程及费用我们可以通过创建一个新的Route,使用Navigator来导航到一个新的页面,但是如果在应用中很多地方都需要导航到同一个页面(比如在开发中,首页、推荐、分类页都可能会跳到详情页),那么就会存在很多重复的代码。…

我们可以通过创建一个新的Route,使用Navigator来导航到一个新的页面,但是如果在应用中很多地方都需要导航到同一个页面(比如在开发中,首页、推荐、分类页都可能会跳到详情页),那么就会存在很多重复的代码。在这种情况下,我们就可以使用 命名路由。
优点:

  • 名称路由是将名字和路由的映射关系,在一个地方进行统一管理
  • 有了命名路由,我们可以通过Navigator.pushNamed() 方法来跳转到新的页面

命名路由怎么使用?
1、可以放在MaterialApp的 initialRouteroutes
initialRoute : 设置应用程序从哪一个路由开始启动,设置了该属性,就不需要再设置home 属性了
2、routes:定义名称和路由之间的映射关系,类型为 Map<String, WidgetBuilder>

基本代码如下:

return MaterialApp(title: 'Flutter Demo',theme: ThemeData(primarySwatch: Colors.blue, splashColor: Colors.transparent),initialRoute: "/",routes: {"/home": (ctx) => HYHomePage(),"/detail": (ctx) => HYDetailPage()},
);

在使用跳转的时候则:

_onPushTap(BuildContext context) {Navigator.of(context).pushNamed("/detail");
}

为了更加规范使用路由,则在开发中让每个界面都对 routeName 统一,这样每个界面都定义一个路由常量来使用

class HYHomePage extends StatefulWidget {static const String routeName = "/home";
}class HYDetailPage extends StatelessWidget {static const String routeName = "/detail";
}

为了更好的管理路由映射,则单独创建一个文件进行管理
管理路由文件代码如下:

import 'package:flutter/material.dart';
import 'package:list/douban/Data/my_provider_demo.dart';
import '../Page/detail.dart';
import '../Page/about.dart';
import '../Page/un_known.dart';
import 'package:list/douban/main.dart';class HYRouter {static final Map<String, WidgetBuilder> routes = {MyHomePage1.routeName:(context) => MyHomePage1(),// 默认界面Deatail.routeName:(context) => Deatail(),AboutPage.routeName:(context) => AboutPage(),
};
// 默认界面static final String initialRoute = MyHomePage1.routeName;// 钩子函数
static final RouteFactory generateRoute = (settings) {if (settings.name == Deatail.routeName){return MaterialPageRoute(builder: (context){// settings.argumentsreturn Deatail();});}return null;
};// 错误界面
static final RouteFactory unKnownRoute = (settings)  {return MaterialPageRoute(builder: (context) {return UnknownPage();});
};}

则,MaterialApp 代码也需要优化

Widget build(BuildContext context) {return MaterialApp(title: 'Flutter Demo',theme: ThemeData(primarySwatch: Colors.blue,),routes: HYRouter.routes,onGenerateRoute:HYRouter.unKnownRoute,onUnknownRoute: HYRouter.unKnownRoute,initialRoute: HYRouter.initialRoute,);

跳转

 TextButton(child: Text("打开详情"),onPressed: () {print("点击打开详情");final result = Navigator.of(context).pushNamed(Deatail.routeName,arguments: "去详情界面的数据");result.then((value) {print("${value}");});},)

在跳转的界面接受参数

Widget build(BuildContext context) {final message = ModalRoute.of(context)?.settings.arguments as String;}

上述就完成最基本的命名路由的注册,映射关系,以及跳转。

  • 路由钩子 onGenerateRoute的钩子函数
    加入我们有一个界面已经创建好,并且传入对应的参数message,并且已经有一个 对应的构造方法,此时如果将其放到路由映射表中则不合适。因为该界面必需要求传入一个参数,这时候我们就可以使用onGenerateRoute的钩子函数
  • 当我们通过pushNamed进行跳转,但是对应的name没有在routes中有映射关系,那么就会执行onGenerateRoute钩子函数;
  • 我们可以在该函数中,手动创建对应的Route进行返回;
  • 该函数有一个参数RouteSettings,该类有两个常用的属性:
    - name: 跳转的路径名称
    - arguments:跳转时携带的参数
onGenerateRoute: (settings) {if (settings.name == "/about") {return MaterialPageRoute(builder: (ctx) {return HYAboutPage(settings.arguments);});}returnnull;
},
  • onUnknownRoute
    如果我们打开的一个路由名称是根本不存在,这个时候我们希望跳转到一个统一的错误页面。
onUnknownRoute: (settings) {return MaterialPageRoute(builder: (ctx) {return UnknownPage();});
},
http://www.15wanjia.com/news/41072.html

相关文章:

  • 多国语言网站建设手机制作网站的软件
  • 什么网站做弹窗广告好宁德市人力资源和社会保障局
  • 如何为网站做面包屑导航一个网站的seo优化有哪些
  • 一般网站后台都是哪里做兔子bt搜索
  • 搜狐做app的网站seo视频
  • 网站建设战略伙伴建立一个网站需要多少钱?
  • 搜题在线使用网页版seo网站排名优化软件是什么
  • 江西省历史建筑信息平台合肥网站推广优化公司
  • 专业网站建设微信网站定制长沙网站seo排名
  • 做网站需要几个服务器网络营销教学网站
  • 做网站和做产品厦门站长优化工具
  • 做网站有费用吗网站关键词排名优化价格
  • 天堂网长尾关键词挖掘网站太原做网站的工作室
  • 河北住房和城乡建设厅网站首我想做app推广代理
  • 宁波网站设计公司哪个好seo网上培训
  • 网站建设栏目管理怎么百度推广
  • 网站制作公司网网络推广是网络营销的基础
  • 郑州科大医院seo站长教程
  • 网站美化流量点击推广平台
  • 山东高端网站建设wang百度云搜索引擎入口官网
  • 网站制作测试范围如何制作网站
  • 旅游地网站制作谁有推荐的网址
  • 做响应式网站品牌推广策划营销策划
  • 侧边栏jquery网站后台免费制作网站平台
  • 建设网站存在的问题百度seo软件是做什么的
  • 关于推进政府网站集约化建设百度一下首页下载安装桌面
  • 网站建设公司代理西安网站优化公司
  • 上海专业网站建设服务百度关键词搜索优化
  • 怎么做阿里国际网站的数据分析新闻热点最新事件
  • 特种作业操作证查询入口seo标题优化导师咨询