Flutter应用程序初探

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的生命周期:

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

相关阅读更多精彩内容

  • 英文官网:https://flutter.io/中文网:https://flutterchina.club/ 首先...
    超威蓝猫l阅读 2,913评论 1 3
  • 原文在此,此处只为学习 Widget与ElementWidget主要接口Stateless WidgetState...
    lltree阅读 4,662评论 0 1
  • 万事皆 Widget Widget 是每个 Flutter 应用的基础。每个 Widget 是一部分用户界面上不可...
    三季人阅读 1,793评论 1 2
  • 你知道吗?? 黑糖具有化淤散寒、暖胃健脾、缓解疼痛的功效,且富含丰富的钙、铁等人体必需的物质与微量元素。而白糖性偏...
    全锋阅读 1,408评论 0 0
  • 【缘起】:昨夜睡梦中偶得几词句,脑中连缀,晨起寻找合适的词牌而不得。于是不复填词,索性写两首七绝。不事雕琢,只求自...
    纳兰卿诚阅读 413评论 0 0

友情链接更多精彩内容