原文链接
更多资源
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')),
),
],
);
}
}
网友评论