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

沈阳网站制作费用网站推广排名收费

沈阳网站制作费用,网站推广排名收费,开发一个微信小程序多少费用,wordpress 按销量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.bjxfkj.com.cn/article/103226.html

相关文章:

  • 奶茶店做网站好处seo搜索引擎优化方法
  • 月嫂网站建设方案广州seo推广培训
  • 江南网盟-专注中小企业网站建设服务百度浏览器官网
  • 厦门有什么网站制作公司电子报刊的传播媒体是什么
  • 网站建设 大公司小公司长春seo公司
  • 武汉制作网站的公司推广新产品最好的方法
  • 外贸网站推广开个网站平台要多少钱
  • 完整网站模板下载网站优化公司开始上班了
  • 做任务的兼职网站郑州网站推广培训
  • 南京电子商务网站开发公司百度竞价个人开户
  • 企业网站定制公司windows优化大师卸载
  • 做的精美的门户网站推荐平台推广
  • 网站开发都是模板直通车推广
  • seo网站关键词优化报价网络营销工具的特点
  • 郑州互助盘网站开发百度收录提交
  • 软件开发文档下载整站优化的公司
  • 北京企业建网站优帮云推广赚钱app排行榜
  • 中小企业电商网站建设的重要性网络营销的平台有哪些
  • 苏州书生商友专业做网站优化公司哪家好
  • 网络文化有限公司网站建设策划书网站怎么做出来的
  • wordpress 大型网站吗清远头条新闻
  • 官方网站怎么推广合肥正规的seo公司
  • 求个免费网站免费网站制作成品
  • 最好网站开发公司电话成都网站制作
  • 亚马逊日本官网入口巩义网站推广优化
  • 长沙学做网站建设网站排名优化手机
  • 网站开发的相关技术东莞好的网站国外站建设价格
  • 在哪里建设网站百度咨询
  • 武汉网站seo诊断无锡网络公司
  • <网站建设与运营》营销型网站建设的价格