声明:阅读该文章请确保你有 Android 开发的相关知识
这是《Android 开发者的 Flutter》系列的第四篇,如果想看上一篇请参考:
Android 开发者的 Flutter(三) —— Flutter 中的动画与绘制
Flutter 如何自定义 Widget
在 Android 中,您通常会使用子类 View 或预先存在的视图来重写和实现方法,以获得所需的行为。
在 Flutter 构建中,一个自定义 Widget 通常不是通过扩展,而是组合较小的 Widget 来实现的。在 Android 中,这与实现自定义 ViewGroup 有些类似 ,其中所有构建块已经存在,但您提供了不同的行为 —— 例如,自定义布局逻辑。
我们来看看如何构建一个 CustomButton 在构造函数中使用标签的方法。这是通过组合它来实现的 RaisedButton,而不是扩展 RaisedButton,重写并实现新的方法:
class CustomButton extends StatelessWidget {
final String label;
CustomButton(this.label);
@override
Widget build(BuildContext context) {
return new RaisedButton(onPressed: () {}, child: new Text(label));
}
}
然后,您可以 CustomButton 像使用其他任何 Widget 一样使用它:
@override
Widget build(BuildContext context) {
return new Center(
child: new CustomButton("Hello"),
);
}