Flutter自定义Stateful组件

作者: TryEnough | 来源:发表于2019-01-15 21:06 被阅读1次

    原文链接

    更多资源


    Flutter自定义Stateful组件

    样式:

    代码:

    import 'package:flutter/material.dart';
    // import 'package:flutter/rendering.dart' show debugPaintSizeEnabled;
    
    void main() {
      // debugPaintSizeEnabled = true;
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        Widget titleSection = Container(
          padding: new EdgeInsets.all(10.0),
          color: Colors.amber,
          child: new FavoriteWidget(),
        );
    
        return MaterialApp(
          title: 'Flutter Layout Demo',
          home: Scaffold(
            appBar: AppBar(
              title: Text('state Full widget'),
            ),
            body: Center(
              child: titleSection,
            ),
          ),
        );
      }
    }
    
    class FavoriteWidget extends StatefulWidget {
      @override
      _FavoriteWidgetState createState() {
        return _FavoriteWidgetState();
      }
    }
    
    class _FavoriteWidgetState extends State<FavoriteWidget> {
      bool _isFavorited = true;
      int _favoriteCount = 55;
    
      void _toggleFavorite() {
        setState(() {
          if (_isFavorited) {
            _favoriteCount -= 1;
            _isFavorited = false;
            // Otherwise, favorite it.
          } else {
            _favoriteCount += 1;
            _isFavorited = true;
          }
        });
      }
    
      @override
      Widget build(BuildContext context) {
        return new Row(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            new Container(
              padding: new EdgeInsets.all(0.0),
              child: new IconButton(
                  icon: (_isFavorited
                      ? new Icon(Icons.star)
                      : new Icon(Icons.star_border)),
                  onPressed: _toggleFavorite),
            ),
            new SizedBox(
              width: 18.0,
              child: new Container(child: new Text('$_favoriteCount')),
            ),
          ],
        );
      }
    }
    
    
    

    相关文章

      网友评论

        本文标题:Flutter自定义Stateful组件

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