今日的程序码 => GITHUB
Flutter 会有三个方式
Extends
的时候,需要使用 super
来继承父类别的 method.super
@override
void animal() {
// TODO: implement animal
super.animal();
}
class Animal {
void animal() {}
}
class Fly {
String className = "carton";
void fly() {}
}
class Swim {
void swimming() {}
}
class Eat {
void eat() {}
}
class Draink {
void drink() {}
}
class AAA extends Animal with Eat, Draink implements Fly, Swim {
@override
String className = "AAA";
void turnOn() {
super.animal();
_test();
eat();
drink();
}
void _test() {}
@override
void fly() {
// TODO: implement Fly
}
@override
void swimming() {
// TODO: implement Swim
}
}
class MyWidget extends StatelessWidget {
final String title;
const MyWidget({Key? key, this.title = 'abc'}) : super(key: key);
@override
Widget build(BuildContext context) {
return Text(title);
}
}
MyWidget(title: 'cc'), // 显示 cc
MyWidget(), // 显示 abc
class MyWidget extends StatelessWidget {
final String title;
const MyWidget({Key? key,required this.title}) : super(key: key);
@override
Widget build(BuildContext context) {
return Text(title);
}
}
MyWidget(title: 'cc'), // 显示 cc
class MyWidget extends StatelessWidget {
final String _title;
const MyWidget({String title = '3'}) : _title = title;
// const MyWidget({required String title}) : _title = title;
@override
Widget build(BuildContext context) {
return Text(_title);
}
}
class MyWidget extends StatefulWidget {
final String title;
const MyWidget({Key? key, this.title = 'abc'}) : super(key: key);
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
@override
Widget build(BuildContext context) {
return Text(widget.title);
}
}
MyWidget(title: 'cc'), // 显示 cc
MyWidget(), // 显示 abc
class MyWidget extends StatefulWidget {
final String title;
const MyWidget({Key? key,required this.title}) : super(key: key);
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
@override
Widget build(BuildContext context) {
return Text(widget.title);
}
}
MyWidget(title: 'cc'), // 显示 cc
class MyWidget extends StatefulWidget {
final String _title;
const MyWidget({String title = '3'}) : _title = title;
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
@override
Widget build(BuildContext context) {
return Text(widget._title);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: TextView(
callback: (String text) => _showDialog(context, text)),
);
}
void _showDialog(BuildContext context, String text) {
showDialog<void>(
context: context, builder: (context) => AlertDialog(title: Text(text)));
}
}
class TextView extends StatefulWidget {
const TextView({required this.callback});
final void Function(String text) callback;
@override
_TextViewState createState() => _TextViewState();
}
class _TextViewState extends State<TextView> {
final _controller = TextEditingController();
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextFormField(controller: _controller),
IconButton(
onPressed: () async => widget.callback(_controller.text),
icon: Icon(Icons.check),
)
],
);
}
}
我们现在假设有一个情境:
Scaffold
,里面有一个 showDialog 的 methodfinal void Function(String text) callback;
final Function callback; // 这样也可以,但是不建议,因为这样很难 DeBug
const TextView({required this.callback});
onPressed: () async => widget.callback(_controller.text),
TextView(callback: (String text) { },),
...
17King 制造中,订阅一下吧(*´∀`)~♥ 今日影片长度:07 分 32 秒 本集重点条列: ...
在前面的日志介绍中,可以透过slow log纪录去找到有问题执行时间久的SQL语句,那有了资料後该...
先聊个题外话因为是第一次参加这种比赛,我从来没有这样发文过,我第一天担心很多,这30天会不会很难发文...
老议题+最近新闻 厂商的说法 iOS系统为App开发者提供相簿更新通知标准能力,相簿发生内容更新时会...