博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flutter 页面入栈和出栈
阅读量:7239 次
发布时间:2019-06-29

本文共 4781 字,大约阅读时间需要 15 分钟。

demo

import 'package:flutter/material.dart';void main() => runApp(new MyApp());class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      title: 'Ajnauw',      theme: ThemeData(        primarySwatch: Colors.blue,      ),      home: MyHomePage(),    );  }}class MyHomePage extends StatefulWidget {  MyHomePage({Key key}) : super(key: key);  @override  _MyHomePageState createState() => _MyHomePageState();}class _MyHomePageState extends State
{ @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('demo'), ), body: ListView( children:
[ RaisedButton( onPressed: () { // 点击触发事件,页面入栈 Navigator.of(context).push( MaterialPageRoute(builder: (BuildContext context) { return Scaffold( appBar: AppBar( title: Text('New Page'), ), body: Center( child: Container( child: Column( mainAxisAlignment: MainAxisAlignment.center, children:
[ Text('New Page Body.'), RaisedButton( color: Theme.of(context).accentColor, onPressed: () { // 页面出栈 Navigator.pop(context); }, child: Text('Back Page'), ), ], ), ), ), ); }), ); // Navigator.push( // context, // MaterialPageRoute(builder: (BuildContext context) { // return Scaffold( // appBar: AppBar( // title: Text('New Page'), // ), // body: Center( // child: Text('New Page Body.'), // ), // ); // }), // ); }, child: Text('跳转新页面'), ), ], ), ); }}

配置 routes 跳转

import 'package:flutter/material.dart';void main() => runApp(new MyApp());class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      title: 'Ajnauw',      theme: ThemeData(        primarySwatch: Colors.blue,      ),      home: MyHomePage(),      routes: 
{ '/a': (BuildContext context) => MyPage(title: 'page A'), '/b': (BuildContext context) => MyPage(title: 'page B'), '/c': (BuildContext context) => MyPage(title: 'page C'), }, ); }}class MyHomePage extends StatefulWidget { MyHomePage({Key key}) : super(key: key); @override _MyHomePageState createState() => _MyHomePageState();}class _MyHomePageState extends State
{ final List
_pages =
['/a', '/b', '/c']; String togoPage = '/b'; _handleRadioValueChange(String nv) { setState(() { togoPage = nv; }); } // 返回一个小widget Widget _generagorRadio(String pageName) { return GestureDetector( onTap: () { _handleRadioValueChange(pageName); }, child: Container( decoration: BoxDecoration( color: Colors.grey[200], ), margin: EdgeInsets.only(top: 8.0), child: Row( children:
[ Radio( value: pageName, onChanged: _handleRadioValueChange, groupValue: togoPage, ), Text(pageName), ], ), ), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('demo'), ), body: ListView( children:
[ Container( margin: EdgeInsets.only(left: 8.0, right: 8.0), child: Column( children: _pages .map((String pageName) => _generagorRadio(pageName)) .toList(), ), ), Container( margin: EdgeInsets.only(left: 8.0, right: 8.0, top: 8.0), child: RaisedButton( onPressed: () { // 点击触发事件,页面入栈 Navigator.pushNamed(context, togoPage); }, color: Theme.of(context).primaryColor, child: Text('跳转新页面 $togoPage'), ), ), ], ), ); }}class MyPage extends StatelessWidget { final String title; MyPage({Key key, this.title}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(title), ), body: Center( child: Text(title), ), ); }}

转载于:https://www.cnblogs.com/ajanuw/p/10475578.html

你可能感兴趣的文章
解决 Delphi XE5 写Android程序的No resource identifier found for attribute... 错误【转】
查看>>
51. N-Queens
查看>>
Linux如何查看JDK的安装路径
查看>>
SyteLine实现字段过滤
查看>>
vs2015启动网站调试提示 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。 解决方法...
查看>>
【LeetCode OJ】Longest Substring Without Repeating Characters
查看>>
利用Ant脚本生成war包的详细步骤
查看>>
Oracle分页查询语句
查看>>
python 读写文本文件
查看>>
乱码电路(Garbled circuits)
查看>>
Memo
查看>>
OOP复习笔记
查看>>
opengl中VAO,VBO,IBO用法小结【转】
查看>>
RHEL和Centos常用版本
查看>>
fastjson null 值处理
查看>>
tensorflow serving GPU编译问题
查看>>
各种Js插件汇总;JavaScript插件
查看>>
解读Raft(三 安全性)
查看>>
044 hive与mysql两种数据源之间的join
查看>>
Groovy动态解析
查看>>