Flutter学习之整合demo

flutter

前言

这篇文章是把前两篇写的一个一个的小main.dart整合在一个demo里面,以及在整合过程中遇到的问题
demo地址
demo中设计的代码解释请看这里
基础的layout学习
导航的学习

效果图

May-01-2019 18-15-33.gif

问题

1.导航跳转问题

The context used to push or pop routes from the Navigator must be that of a widget that is a flutter: descendant of a Navigator widget

这是因为直接在MaterialApp中push是不行的。
原来的代码

class Myapp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,//设置取消右上角的debug标识
      title: 'flutter学习demo',
      theme: ThemeData.light(),
      home:Scaffold(
        appBar: AppBar(
          title: Text('flutter学习demo'),
        ),
        body: ListView(
          children: <Widget>[
            getLines('基础的layout学习', context: context,ontap: () {
              Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => MyBasicLayoutScreen(),
                  ));
            }),
             getLines('导航的学习', context: context,ontap: () {
              Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => MyNavigationPractice(),
                  ));
            }),

            
          ],
        ),
      )
    );
  }
}

后面把跳转的部分单独拎出来

import 'package:flutter/material.dart';
import 'layout/basicsLayout.dart';
import 'navigation/navigationPractice.dart';
import 'utils/utility.dart';
void main() => runApp(MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'flutter学习demo',
      theme: ThemeData.light(),
      home: MyHomeScreen(),
    ));


class MyHomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('flutter学习demo'),
        ),
        body: ListView(
          children: <Widget>[
            getLines('基础的layout学习', context: context,ontap: () {
              Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => MyBasicLayoutScreen(),
                  ));
            }),
             getLines('导航的学习', context: context,ontap: () {
              Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => MyNavigationPractice(),
                  ));
            }),

            
          ],
        ),
    );
  }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 英文官网:https://flutter.io/中文网:https://flutterchina.club/ 首先...
    超威蓝猫l阅读 2,929评论 1赞 3
  • 1)使用《牛津英语搭配词典》查“shift”,了解它作名词的常用搭配。 shift between:......之...
    徐恩峰阅读 381评论 0赞 0
  • 落雨天凉倒春寒 添衣加裤被窝暖 不是人懒不想动 确是天冷惹心烦
    蜀山袖手人阅读 503评论 1赞 9

友情链接更多精彩内容