首页 > 其他分享 >Flutter界面跳转

Flutter界面跳转

时间:2024-02-28 12:00:22浏览次数:20  
标签:const package import 跳转 dart context child 界面 Flutter

第一种带参数跳转

import 'package:flutt/scrond_page.dart';
import 'package:flutt/third_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const CupertinoApp(
    title: 'Navigation Basics',
    home: FirstRoute(),
  ));
}

class FirstRoute extends StatelessWidget {
  const FirstRoute({super.key});

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: const CupertinoNavigationBar(
        middle: Text('First Route'),
      ),
      child: Center(
        child: CupertinoButton(
          child: const Text('O1pen route'),
          onPressed: () {
            Navigator.push(
              context,
              //1.带参数跳转 MaterialPageRoute(builder: (context) => const SecondPage(name: "124")),
              MaterialPageRoute(builder: (context) => const ThirdPage(),settings:
              const RouteSettings(arguments: "008")
              ),
            );
          },
        ),
      ),
    );
  }
}

2、带参数接收

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

class SecondPage extends StatelessWidget {
  final String name ;
  const SecondPage({super.key, required this.name});

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar:  CupertinoNavigationBar(
        middle: Text(name),
      ),
      child: Center(
        child: CupertinoButton(
          onPressed: () {
            Navigator.pop(context);
          },
          child: const Text('Go back!'),
        ),
      ),
    );
  }
}

3.不带参数接收

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

class ThirdPage extends StatelessWidget {

  const ThirdPage({super.key});

  @override
  Widget build(BuildContext context) {
    final name = ModalRoute.of(context)!.settings.arguments as String;
    return CupertinoPageScaffold(
      navigationBar:  CupertinoNavigationBar(
        middle: Text(name),
      ),
      child: Center(
        child: CupertinoButton(
          onPressed: () {
            Navigator.pop(context);
          },
          child: const Text('Go back!'),
        ),
      ),
    );
  }
}

 

标签:const,package,import,跳转,dart,context,child,界面,Flutter
From: https://www.cnblogs.com/ZhangShengjie/p/18039888

相关文章

  • 界面控件DevExpress ASP.NET富文本编辑器 - 快速集成高级文本编辑功能
    从DOCx和RTF到EPUB,DevExpressASP.NETRichTextEditor(富文本编辑器)(WYSIWYG文字处理器)提供了用户所需的功能,可以在下一个Web应用程序中快速合并高级文本编辑功能。P.S:DevExpressASP.NETWebForms Controls拥有针对Web表单(包括报表)的110+种UI控件,可利用轻量级渲染、响应式......
  • Flutter 使用inspector 调试UI
    1.在AndroidStudio中点击Flutterinspector2.点击FlutterPerformace-openDevtool在浏览器中调试3.点选中widget可以在widget树中和模拟器中相互点击调试、相应控件会高亮4.其他功能 ......
  • .NET GUI 相关页面跳转方案
    1.NavigationView是UWP,及现在winui流行的主窗口导航方式。创建一个NavigationView,在里面放置Frame作为右侧主要的展示窗口。在CodeBehind中实现NavView的ItemInvoked事件。根据参数InvokedItem(每一个Item的Content名称),或者每一Item的Tag来确定跳转。(还需处理重复跳转......
  • uni-app分包优化、页面预加载、页面跳转等封装
    uni-app分包优化、页面预加载、页面跳转等封装:https://blog.csdn.net/qq_44209274/article/details/115913680?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170900569616800192290740%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=1......
  • 在Winform界面中使用自定义控件,丰富界面的效果处理
    我们在《SqlSugar开发框架》中,Winform界面开发部分往往也用到了自定义的用户控件,对应一些特殊的界面或者常用到的一些局部界面内容,我们可以使用自定义的用户控件来提高界面的统一性,同时也增强了使用的便利性。如我们Winform界面中用到的分页控件、附件显示内容、以及一些公司、部......
  • Flutter中如何计算一个Container可以完美填充多少文字
    要想知道一个Container可以填满多少个文字,我们只需算出一行可以填充的文字数量,再算出可以填充的最大行数,将两者相乘就行。遇到问题先干嘛?当然是用搜索引擎先检索一下答案。我检索到了一篇标题为《Flutter-如何计算文字宽高》的文章(因为我在站内没有搜到这篇文章,所有有兴趣的可......
  • Flutter 新建的Project Type类型对比
    FlutterApp构建一个标准FluterApp(统一管理模式)包含Dart层和平台层(iOS/Android)FlutterModule创建一个Flutter模块(三端分离模式)以模块的形式分别嵌入原生项目FlutterPackage纯Dart插件工程,不依赖Flutter仅包含Dart层的实现,通常用来定义一些公共库Flutter......
  • 揭秘界面控件Kendo UI for Angular中新的日期增强功能!
    KendoUIforAngular是专用于Angular开发的专业级Angular组件。telerik致力于提供纯粹的高性能AngularUI组件,无需任何jQuery依赖关系。在本文中,我们将带大家了解KendoUIforAngular的DateInput组件中有什么新功能,新功能可以帮助您提升应用程序并为用户提供增强的日期输入体验......
  • 【vue3】【router】跳转页面渲染两次问题
    最近做一款毕设遇到一个问题:如图所示部分是因为渲染了两次组件导致执行了两次onMounted加载了相同数据。 router.ts以下是我的路由相关配置: default布局:keepalive App.vue 最后导致这个原因正是因为布局组件default.vue和App.vue同时使用了keepalive,只要任意一边取消......
  • linux跳转到文件指定行
    在日常编程过程中,我们经常需要在一个比较大的文件中定位到某一行进行修改或查看。在Linux系统中,有很多种方法可以实现这个操作,例如使用文本编辑器、grep命令等。本文将从多个角度分析如何在Linux中跳转到文件指定行。一、使用vim编辑器 vim是Linux系统中一个非常常用的文本编......