Flutter学习之整合demo

作者: 锦鲤跃龙 | 来源:发表于2019-05-01 18:22 被阅读3次
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(),
                  ));
            }),

            
          ],
        ),
    );
  }
}

相关文章

网友评论

    本文标题:Flutter学习之整合demo

    本文链接:https://www.haomeiwen.com/subject/waswnqtx.html