Flutter Tips

2019-01-11  本文已影响0人  能量马甲
  1. 如何全局修改App字体大小?
    修改MediaQuery里面的textScaleFactor属性,以新的MediaQuery微件作为builder函数返回值,字体大小缩放因子全局生效
    关键字: MaterialApp(builder) , MediaQuery, textScaleFactor
MaterialApp(
  builder: (BuildContext context, Widget child) {
    return MediaQuery.of(context).copyWith({
      textScaleFactor: _options.textScaleFactor.scale,
      child: child,
    });
  }
);

  1. 如何隐藏顶部状态栏?
    关键字:SystemChrome, services.dart
import 'package:flutter/services.dart';

Future main() async {
  await SystemChrome.setEnabledSystemUIOverlays([]);
}
  1. 类方法前下划线void _method()只在当前类中可见,同private,类名前面下划线(_ClassName),只在当前源文件可见
  2. State<T extends StatefulWidget>类中的initState热重载(debug)不会被执行,修改initState初始化代码后,需重新debug才生效
  3. 避免使用对象赋值语句,传递的是引用,而不是数据实体,应该使用复制
  @override
  void initState() {
    super.initState();
    articles = List<Article>.from(kArticles);
    //articles = kArticles;  错误,无效
  }

5.dart中如何写单例模式

class Singleton {
  Singleton._();
  // 在类级别而非对象级别创建该对象,始终是一个
  static final shared = Singleton._();
  // 工厂构造函数不一定创建对象,这是一个特殊的构造函数
  factory Singleton() => shared;

}
  test('test singleton', (){
    final a = Singleton();
    final b = Singleton();
    expect(a == b, true);
    expect(identical(a, b), true);
  });
上一篇下一篇

猜你喜欢

热点阅读