还记得第一个看到的Flutter组件吗?

移动开发 作者: 2024-08-22 20:10:01
注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 MaterialApp 在学习Flutter的过程中我们第
MaterialApp(
  home: Scaffold(
    appBar: AppBar(
      title: Text('老孟'),),)
MaterialApp(
  title: '老孟',onGenerateTitle: (context) {
    var local = Localizations.localeOf(context);
    if (local.languageCode == 'zh') {
      return '老孟';
    }
    return 'laomeng';
  },...
)
  1. 路由为/home不为null则使用home
  2. 使用routes指定的路由。
  3. 使用onGenerateRoute生成的路由,处理除homeroutes以外的路由。
  4. 如果上面都不匹配则调用onUnknownRoute
MaterialApp(
  routes: {
    'container': (context) => ContainerDemo(),'fitted': (context) => FittedBoxDemo(),'icon': (context) => IconDemo(),},initialRoute: '/',home: Scaffold(
    appBar: AppBar(
      title: Text('老孟'),onGenerateRoute: (RouteSettings routeSettings){
        print('onGenerateRoute:$routeSettings');
        if(routeSettings.name == 'icon'){
          return MaterialPageRoute(builder: (context){
            return IconDemo();
          });
        }
      },onUnknownRoute: (RouteSettings routeSettings){
        print('onUnknownRoute:$routeSettings');
        return MaterialPageRoute(builder: (context){
          return IconDemo();
        });
      },...
)
MaterialApp(
  theme: ThemeData(
    primaryColor: Colors.red
  ),darkTheme: ThemeData(
      primaryColor: Colors.red
  ),themeMode: ThemeMode.dark,
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  flutter_cupertino_localizations: ^1.0.1

MaterialApp(
  localizationsDelegates: [
    GlobalMaterialLocalizations.delegate,GlobalWidgetsLocalizations.delegate,GlobalCupertinoLocalizations.delegate
  ],supportedLocales: [
    const Locale('zh','CH'),const Locale('en','US'),],...
)
  • GlobalMaterialLocalizations.delegate :为Material Components库提供了本地化的字符串和其他值。
  • GlobalWidgetsLocalizations.delegate:定义widget默认的文本方向,从左到右或从右到左。
  • GlobalCupertinoLocalizations.delegate:为Cupertino(ios风格)库提供了本地化的字符串和其他值。
MaterialApp(
  localeListResolutionCallback:
      (List<Locale> locales,Iterable<Locale> supportedLocales) {
    if (locales.contains('zh')) {
      return Locale('zh');
    }
    return Locale('en');
  },...
)
Locale myLocale = Localizations.localeOf(context);
MaterialApp(
  debugShowMaterialGrid: true,
MaterialApp(
  showPerformanceOverlay: true,
MaterialApp(
  debugShowCheckedModeBanner: true,...
)
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_66850.html