MyHomePage(Key key, this.title) : super(key: key)理解 flutter构造器key
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyHomePage(Key key, this.title) : super(key: key)理解 flutter构造器key相关的知识,希望对你有一定的参考价值。
参考技术A MyHomePage(Key key, this.title) : super(key: key);个人理解:
首先MyHomePage(Key key, this.title)的含义是一个命名函数的写法,即调用的时候是这样的
就是说参数被包括之后就是参数可选,就是可以是0个参数,1个参数,2个参数,然后每个参数前都会有个标识符表示这个参数的含义。
然后非默认构造函数是不能被子类继承的,即父类的super(key:xxx) 构造器不会被继承,子类就没有这个构造器,那么我们现在的写法需要使用父类的super(key:xxx) 构造器,则需要在子类构造器后边手工调用父类的这个个构造器。
所以后边的 : super(key: key)就是指定继承父类的构造器。
只是个人理解,希望大神肯定或者勘误,谢谢
https://www.dartcn.com/guides/language/language-tour#%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0
tabController保活
代码:
import ‘package:flutter/material.dart‘;
class MyhomePage extends StatefulWidget {
MyhomePage({Key key}) : super(key: key);
@override
_MyhomePageState createState() => _MyhomePageState();
}
class _MyhomePageState extends State<MyhomePage> with AutomaticKeepAliveClientMixin {
int _count = 0;
@override
bool get wantKeepAlive => true;//方法
void _inaddCount(){
setState(() {
_count ++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(‘计数‘),
Text(‘$_count‘,style: Theme.of(context).textTheme.display2,)
],
),
),
floatingActionButton: FloatingActionButton(
onPressed:_inaddCount,
tooltip: ‘点击加1‘,
child: Icon(Icons.add),
),
);
}
}
总结:
保活—就是保持tabController中的数据不会归零
继承于AutomaticKeepAliveClientMixin
//重写wantKeepAlie 方法 并置为true
bool get wantKeepAlive => true;//方法
写个内置函数 重写setState()
以上是关于MyHomePage(Key key, this.title) : super(key: key)理解 flutter构造器key的主要内容,如果未能解决你的问题,请参考以下文章