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

网站改关键词网站如何防盗链

网站改关键词,网站如何防盗链,最新国际新闻事件今天,公司网站建设服务费怎么做账Flutter 的导航页面跳转,是通过组件Navigator 和 组件MaterialPageRoute来实现的,Navigator提供了很多个方法,但是目前,我只记录我学习过程中接触到的方法: Navigator.push(), 跳转下一个页面Navigator.pop(), 返回上一…

Flutter 的导航页面跳转,是通过组件Navigator 和 组件MaterialPageRoute来实现的,Navigator提供了很多个方法,但是目前,我只记录我学习过程中接触到的方法:

  1. Navigator.push(), 跳转下一个页面
  2. Navigator.pop(), 返回上一个页面

1. 不带参数的页面跳转案例

代码如下:

import 'package:flutter/material.dart';void main() {runApp(MaterialApp(title: "导航演示",home: FirstScreen(),));
}class FirstScreen extends StatelessWidget {Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("导航页面"),),body: Center(child: ElevatedButton(style: ElevatedButton.styleFrom(backgroundColor: Colors.blueAccent,foregroundColor: Colors.white),onPressed: (){Navigator.push(context, MaterialPageRoute(builder: (context) => SecondScreen()));}, child: Text("查看商品详情页"))),);}
}class SecondScreen extends StatelessWidget {Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("商品详情页")),body: Center(child: ElevatedButton(onPressed: (){Navigator.pop(context);}, child: Text("点击返回")),),);}
}

效果图:
在这里插入图片描述

2. 导航常数的传递和接收

代码如下:

import 'package:flutter/material.dart';void main() {runApp(MaterialApp(title: "导航演示",home: ProductList(products: List.generate(20, (i) => Product("商品$i", "这是一个商品详情页,编号为:$i")))));
}class ProductList extends StatelessWidget {// 定义一个参数final List<Product> products;// 接收参数const ProductList({super.key, required this.products});Widget build(BuildContext context) {return Scaffold(appBar: AppBar( title: Text("商品列表")),body: ListView.builder(itemCount: products.length,itemBuilder: (context, index) {return ListTile(title: Text(products[index].title),onTap: (){Navigator.push(context, MaterialPageRoute(builder: (context) => ProductDetail(product:products[index])));},);}));}
}// 商品详情页
class ProductDetail extends StatelessWidget {// 定义一个参数final Product product;const ProductDetail({super.key, required this.product});Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text(product.title)),body: Center(child: Text(product.description),),);}
}// 定义一个商品的对象
class Product {final String title; // 商品标题final String description; // 商品描述Product(this.title, this.description);
}

效果图如下:
在这里插入图片描述

3. 子页面给父级页面返回数据

代码如下:

import 'package:flutter/material.dart';void main() {runApp(MaterialApp(title: "导航演示",home: FirstPage()));
}class FirstPage extends StatelessWidget {const FirstPage({super.key});Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("子页面将数据回传给父视图")),body: Center(child: RouteButton(),),);}
}class RouteButton extends StatelessWidget {Widget build(BuildContext context) {return ElevatedButton(onPressed: (){_navigateDataToChildView(context);}, child: Text("传递数据"));}_navigateDataToChildView(BuildContext context) async {// 等待子视图返回时,回传的数据final result = await Navigator.push(context, MaterialPageRoute(builder: (context) => ChildView()));// 屏幕底部的小弹窗ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(result)));}
}// 子视图
class ChildView extends StatelessWidget {const ChildView({super.key});Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("子视图")),body: Center(child: Column(children: [ElevatedButton(onPressed: (){Navigator.pop(context, "回传:这是第一个数据回传");}, style: ElevatedButton.styleFrom(backgroundColor: Colors.blueAccent,foregroundColor: Colors.white),child: Text("第一个数据回传")),ElevatedButton(onPressed: (){Navigator.pop(context, "回传:这是第二个数据回传");},style: ElevatedButton.styleFrom(backgroundColor: Colors.orangeAccent,foregroundColor: Colors.white), child: Text("第二个数据回传"))],),),);}
}

效果图如下:

Flutter_学习记录_数据回传

4. 设置导航栏的主题色

MaterialApp组件里面有个 theme属性,设置theme属性就可以设置导航栏的主题色,代码如下:

import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return  MaterialApp(debugShowCheckedModeBanner: true,home: Contrainer(),// 设置导航栏的主题色theme: ThemeData(appBarTheme: AppBarTheme(backgroundColor: Colors.yellow, // 设置导航栏颜色为蓝色),),);}
}

5. 导航栏的左右两侧添加操作按钮

AppBar组件中的leading是可以添加左边一个按钮,actions是可以添加右边的一组按钮,代码实例如下:

import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return  MaterialApp(debugShowCheckedModeBanner: true,home: Home(),theme: ThemeData(appBarTheme: AppBarTheme(backgroundColor: Colors.yellow, // 设置导航栏颜色为蓝色),),);}
}class Home extends StatelessWidget {const Home({super.key});Widget build(BuildContext context) {return Scaffold(appBar: AppBar(// 添加左边的操作按钮leading: IconButton(onPressed: () => debugPrint("navigation button is pressed."), icon: Icon(Icons.menu),tooltip: "Navigation",),// 添加右边的操作按钮actions: [IconButton(onPressed: () => debugPrint("navigation button is pressed."), icon: Icon(Icons.search),tooltip: "search",)],title: Text("App Demo"),elevation: 0.0),body: Center(child: Text("添加导航栏的事件"),),);}
}

效果图如下:
在这里插入图片描述

http://www.yayakq.cn/news/792937/

相关文章:

  • 东莞模块网站建设wordpress4.9主题安装
  • 绵阳网站网站建设上海建设咨询网
  • 广汉市建设局官方网站抖音alexa排名
  • 内蒙古包头网站建设wordpress响应式主题免费下载
  • 音乐网站设计总结做门窗网站怎么做
  • 为什么要用h5建站wordpress小工具是哪个文件
  • 无备案网站广告如何做网站防采集 如何采集
  • 简洁物流网站模板wordpress小工具下载
  • 做网站 excel公众号制作素材
  • 优秀公司网站东莞百度seo推广公司
  • 做相似网站网站风格细节
  • 招聘网站建设的项目描述校园网站建设方案模板
  • 在阿里巴巴上做网站需要什么最新免费网站源码
  • 广州网站设计 信科网络福田网站建设多少钱
  • 佛山小企业网站建设个人主页建站
  • 中考管理系统登录网站跨境电商哪个平台比较好
  • 早那么做商城网站中国疾控卫生应急服装
  • 房产网站制作网络营销专业可以干什么工作
  • 如何增加网站关键词库wordpress js图片
  • 网站建设 精品课程最好的网络推广方式
  • 网站开发联系人国强建网站挣钱 优帮云
  • 烟台网站建设维护中国公司网
  • 购物网站设计流程图wordpress postpass
  • 专门做特价的网站制作网页背景如何铺满
  • 有了网站源码怎么做app太原建站网站模板
  • 怎么做电影网站页面的wordpress 2016
  • 友汇网网站建设管理后台自己能搞定吗?
  • 织梦网站备份几种方法做的比较好的猎头网站
  • 网站注册账号怎么做怎么搭建网站
  • 网站开发需要具备哪些技术2345网址导航怎么卸载win10