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

Flutter开发 页面间的值传递示例

创建两个dart文件,jump.dart为跳转页面,chewie.dart为视频页面,跳转页面有两个按钮,都是跳转视频页面,但是传递的视频地址不一样。

请添加图片描述

jump.dart
引入chewie.dart,才能使用CheWie()方法。

import 'package:flutter/material.dart';
import 'chewie.dart';void main() {runApp(MyPage());
}class MyPage extends StatelessWidget {const MyPage({super.key});Widget build(BuildContext context) {return MaterialApp(theme: ThemeData(), home: MyFul());}
}class MyState extends State {Widget build(BuildContext context) {Column column = Column(crossAxisAlignment: CrossAxisAlignment.stretch,children: [OutlinedButton(onPressed: () {Navigator.push(context,MaterialPageRoute(builder: (context) => CheWie(url: 'https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/360/Big_Buck_Bunny_360_10s_1MB.mp4',)), //跳转到视频页面);},child: Text("跳转1"),),OutlinedButton(onPressed: () {Navigator.push(context,MaterialPageRoute(builder: (context) {return CheWie(url: 'https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-360p.mp4',);},),);},child: Text("跳转2"),),],);return Scaffold(appBar: AppBar(title: Text(""), centerTitle: true),body: column,);}}class MyFul extends StatefulWidget {State<StatefulWidget> createState() {return MyState();}
}

chewie.dart
创建构造方法,用来接收传值,然后再用home_url保存传来的值

import 'package:chewie/chewie.dart';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';late String home_url;
class CheWie extends StatelessWidget {// const CheWie({super.key});String url;CheWie({required this.url});Widget build(BuildContext context) {home_url = url;return MaterialApp(theme: ThemeData(), home: MyFul());}
}class MyState extends State {late VideoPlayerController vpc;late ChewieController chewieController;late Future future;void dispose() {super.dispose();vpc.dispose();chewieController.dispose();}void initState() {//视频初始化vpc = VideoPlayerController.networkUrl(Uri.parse(home_url));future = vpc.initialize();}Widget build(BuildContext context) {chewieController = ChewieController(videoPlayerController: vpc,aspectRatio: 16 / 9,autoPlay: true,);Widget cw = Center(child: Chewie(controller: chewieController));return Scaffold(appBar: AppBar(title: Text(""), centerTitle: true),body: Container(child: cw,height: 300,width: MediaQuery.of(context).size.width,color: Colors.black,),);}
}class MyFul extends StatefulWidget {State<StatefulWidget> createState() {return MyState();}
}
http://www.dtcms.com/a/324896.html

相关文章:

  • 基于C语言(兼容C++17编译器)的记账系统实现
  • 虚拟机安装 爱快ikuai 软路由 浏览器无法访问/拒绝连接
  • 数据库面试题集
  • Effective C++ 条款34:区分接口继承和实现继承
  • 数据结构(17)排序(下)
  • 深度剖析 P vs NP 问题:计算领域的世纪谜题
  • Graham 算法求二维凸包
  • PG靶机 - Resourced
  • 【51单片机按键闪烁流水灯方向】2022-10-26
  • 【LeetCode】102 - 二叉树的层序遍历
  • MVC结构变种——第三章核心视图及控制器的整体逻辑
  • idea中使用maven造成每次都打印日志
  • matlab实现随机森林算法
  • [SUCTF 2019]Pythonginx
  • JS中typeof与instanceof的区别
  • 【精彩回顾·成都】成都 User Group×柴火创客空间:开源硬件驱动 AI 与云的创新实践!
  • JS 注释类型
  • ADK[3]历史对话信息保存机制与构建多轮对话机器人
  • scanpy单细胞转录组python教程(四):单样本数据分析之降维聚类及细胞注释
  • 【Canvas与戳记】黑底金Z字
  • 正确使用SQL Server中的Hint(10)— 常用Hint(2)
  • Spring WebSocket安全认证与权限控制解析
  • 研究揭示 Apple Intelligence 数据处理中可能存在隐私漏洞
  • 【redis初阶】------List 列表类型
  • 通过脚本修改MATLAB的数据字典
  • 【15】OpenCV C++实战篇——fitEllipse椭圆拟合、 Ellipse()画椭圆
  • 【人工智能99问】BERT的原理什么?(23/99)
  • Elasticsearch 保姆级入门篇
  • SpringBoot查询方式全解析
  • 在Mac上搭建本地AI工作流:Dify与DeepSeek的完美结合