Flutter 疑难杂症系列

0. 模拟器调试卡顿问题

Flutter 使用 Skia 进行图形渲染,Skia有老套不同的后端,Flutter 在 iOS 模拟器中使用纯CPU 后端,而实际设备一般使用GPU硬件加速后端,导致性能特性很不一样。一般不推荐使用模拟器进行调试,尤其是 iOS 模拟器。

1.Text 默认显示红色字体、黄色双划线。

主要是因为没有使用Scaffold脚手架组件,可在外部套上一层。

Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: const Text('Sample Code'),
    ),
    body: Center(
      child: Text('You have pressed the button $_count times.')
    ),
  );
}

或者自定义TextStyle的decoration: TextDecoration.none,

2.使用CupertinoDatePicker时,The method 'datePickerDayOfMonth/datePickerHour' was called on null。

主要App中配置了本地化,但是没有加入GlobalCupertinoLocalizations.delegate,

MaterialApp(
        title: 'Supply Chain Financial',
        localizationsDelegates: [
          GlobalMaterialLocalizations.delegate,
          GlobalWidgetsLocalizations.delegate,
          GlobalCupertinoLocalizations.delegate,
          SCFLocalizationsDelegate.delegate,
        ],
        supportedLocales: [Locale('zh', 'CH')],
        locale: Locale('zh', 'CH'),
      .......
}

3.全局 Appbar 的title居中问题,之前在 Android 上 title 总是紧贴 leading,需要自己手动的设置 centerTitle。其实我们可以在 MaterialApp 中指定默认使用 iOS 主题或者在MaterialApp的theme下配置全局的AppbarTheme如下:

MaterialApp(
        theme: ThemeData(
          platform: TargetPlatform.iOS,
        ),
      ),
  theme: ThemeData( 
            appBarTheme: AppBarTheme(
              centerTitle: true,
            ),
          ),

你可能感兴趣的:(Flutter 疑难杂症系列)