美文网首页
Flutter应用程序初探

Flutter应用程序初探

作者: 柳源居士 | 来源:发表于2019-07-19 00:18 被阅读0次

    1. 本文内容来自flutter中文网

    1. 程序创建过程略,详情看flutter中文网教程
    2. 知识点:

    使用第三方package:

    在项目下的pubspec.yaml文件里,添加第三方项目的dependencies:

    dependencies:
      flutter:
        sdk: flutter
    
      # The following adds the Cupertino Icons font to your application.
      # Use with the CupertinoIcons class for iOS style icons.
      cupertino_icons: ^0.1.2
      # 开源软件包 ,其中包含数千个最常用的英文单词以及一些实用功能.
      english_words: ^3.1.0
    

    然后在Android Studio的编辑器视图中查看pubspec时,单击右上角的 Packages get,这会将依赖包安装到您的项目。

    创建有状态的widget

    Stateless widgets 是不可变的, 这意味着它们的属性不能改变 - 所有的值都是最终的.
    比如IconButton。
    创建的app起始页,其内容只有在app重新加载时,才会重新load。
    Stateful widgets 持有的状态可能在widget生命周期中发生变化. 实现一个 stateful widget 至少需要两个类:
    一个 StatefulWidget类。
    一个 State类。 StatefulWidget类本身是不变的,但是 State类在widget生命周期中始终存在.
    理解:有状态的widget一是需要一个StatefulWidget,然后再创建状态。

    //创建一个StatefulWidget类,并创建状态
    class RandomWords extends StatefulWidget {
      @override
      createState() => new RandomWordsState();
    }
    
    //创建状态类
    class RandomWordsState extends State<RandomWords> {
      //添加build方法,完成功能
       @override
       Widget build(BuildContext context) {
          final wordPair = new WordPair.random();
          return new Text(wordPair.asPascalCase);
       }  
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
    
        return new MaterialApp(
          title: 'Welcome to Flutter',
          home: new Scaffold(
            appBar: new AppBar(
              title: new Text('Welcome to Flutter'),
            ),
            body: new Center(
              //child: new Text(wordPair.asPascalCase),
              child: new RandomWords(),
            ),
          ),
        );
      }
    }
    

    在Dart语言中使用下划线_前缀标识符,会强制其变成私有的。

    内容更改后,页面如何刷新:

    提示: 在Flutter的响应式风格的框架中,调用setState() 会为State对象触发build()方法,从而导致对UI的更新

    在setState()里,传入另一个匿名函数,来执行动作。意味着参数函数执行完成后,调用setState()。

    页面间路由:

    在Flutter中,导航器(Navigator)管理应用程序的路由栈。将路由推入(push)到导航器的栈中,将会显示更新为该路由页面。 从导航器的栈中弹出(pop)路由,将显示返回到前一个路由。

    新页面的内容在在MaterialPageRoute的builder属性中构建,builder是一个匿名函数。

    void _pushSaved() {
      Navigator.of(context).push(
        new MaterialPageRoute(
            builder: (context) {
                //do here
                return one widget;
            },
        ),
      );
    }
    

    后记:
    widget的生命周期:

    相关文章

      网友评论

          本文标题:Flutter应用程序初探

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