zoukankan      html  css  js  c++  java
  • flutter入门

      //flutter不支持ios热更新,ios大,没有skia,路由入栈管理
    import 'package:flutter/material.dart';
    import 'package:english_words/english_words.dart';
    void main() {
      runApp(MyApp());
    }
    class MyApp extends StatelessWidget {
      // This widget is the root of your application.
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          home: new Scaffold(
              appBar: new AppBar(
                  title: new Text('Welcome to Flutter')),
              body: new Center(child: new RandomWords())),
              
        );
      }
    }
    class RandomWords extends StatefulWidget {
      @override
      createState() => new RandomWordsState();
    }
    class RandomWordsState extends State<RandomWords> {
      final _suggestions = <WordPair>[];
      final _saved = new Set<WordPair>();
      final _biggerFont = const TextStyle(fontSize: 18.0);
      void _pushSaved() {
        Navigator.of(context).push(new MaterialPageRoute(builder: (context) {
          final tiles = _saved.map((pair) {
            return new ListTile(
                title: new Text(pair.asPascalCase, style: _biggerFont));
          });
          final divided =
              ListTile.divideTiles(context: context, tiles: tiles).toList();
          return new Scaffold(
              appBar: new AppBar(title: new Text('saved')),
              body: new ListView(children: divided));
        }));
      }
     
      @override
      Widget build(BuildContext context) {
        return new Scaffold(
          appBar: new AppBar(
              title: new Text('Startup name generator'),
              actions: <Widget>[
                new IconButton(icon: new Icon(Icons.list), onPressed: _pushSaved),
                new IconButton(icon: new Icon(Icons.search), onPressed: null)
              ]),
          body: _buildSuggestions(),
          floatingActionButton: new FloatingActionButton(
            tooltip: 'Add', // used by assistive technologies
            child: new Icon(Icons.add),
            onPressed: null,
          ),
        );
      }
      Widget _buildSuggestions() {
        return new ListView.builder(
            padding: const EdgeInsets.all(16.0),
            itemBuilder: (context, i) {
              if (i.isOdd) return new Divider();
              final index = i ~/ 2;
              if (index >= _suggestions.length) {
                _suggestions.addAll(generateWordPairs().take(10));
              }
              return _buildRow(_suggestions[index]);
            });
      }
      Widget _buildRow(WordPair pair) {
        final alreadySaved = _saved.contains(pair);
        return new ListTile(
          title: new Text(pair.asPascalCase, style: _biggerFont),
          trailing: new Icon(alreadySaved ? Icons.favorite : Icons.favorite_border,
              color: alreadySaved ? Colors.red : null),
          onTap: () {
            setState(() {
              if (alreadySaved) {
                _saved.remove(pair);
              } else {
                _saved.add(pair);
              }
            });
          },
        );
      }
    }
  • 相关阅读:
    vs2015解决fopen、fscanf 要求替换为fopen_s、fscanf_s的办法
    ThinkPHP5.1的公共函数
    Linux禁止ping
    2019.10.17 上科大虞晶怡教授
    Minimax极大极小算法、Alpha-Beta Pruning剪枝算法
    Apache24服务无法启动,发生服务特定错误1.
    LaTeX小白安装超详细步骤(WIndows系统)||相信我看这个安装就够啦!
    Java中Comparator比较器的使用
    当我看到别人二战想法,退缩的时候,我的感受
    2019.12.3 学英语的心得;学习学习
  • 原文地址:https://www.cnblogs.com/connie313/p/13659351.html
Copyright © 2011-2022 走看看