flutter 学习遇到的问题

359 阅读2分钟

1.F5运行打开的Chrome

VS Code右下方有设备信息,选中对应的设备信息

2.按照文档导入english库一直不成功

english_words: ^3.1.0

在pubspec.yaml中添加english_words: ^3.1.0 后点击右键get Packet 然后代码中使用一直有问题(主要大小写)

后来去官网查询englist_words版本已经到4.0.0了,后来按吧版本内容改为最新版本,重新操作一遍成功

3.编写是一点要注意拼写错误,一般没有提示或者提示不明确

期间将ListTile写成了ListTitle了,由于习惯问题写错了.一直编译不起来

4.编写过程中无意中导入了dart:js库,导致一直编译不起来,最终将其注释掉....

import 'dart:js';

5.按照文档中要求设置主题没有效果

theme: new ThemeData(
        primaryColor: Colors.white,
      ),

按照上面代码并没有效果

theme: new ThemeData( 
    brightness: Brightness.dark,
    primaryColor: Colors.lightBlue[800],
    accentColor: Colors.cyan[600],
  ),

改成上面的只是黑白主题生效,但是primaryColor并没有生效,并且在代码中accentColor处于去除状态,应该也没有生效

theme: ThemeData(        colorScheme: ColorScheme.light().copyWith(primary: Colors.white),      ),

最终查询到GitHub上issue中有个相同的问题,按照上面的写法可以设置主题背景颜色,但是nav上的文字颜色也需要重新修改

github.com/flutter/flu…

theme: ThemeData(primarySwatch: Colors.orange, primaryColor: Colors.white),

按照上面的方法可以设置主题背景色,通过primarySwatch进行设置,但是没法设置黑白

这里的ThemeData即为控制App的主题,primarySwatch设置即可控制主题的各类颜色,但是这里的颜色是需要MaterialColor,但是纯色种的黑色和白色不是MaterialColor。所以不能设置primarySwatch为Colors.white。

参考连接:www.jianshu.com/p/5cde325e6…

但是这种只能设置支持MaterialColor的颜色,黑白颜色还是不支持

最后试了一下设置主题颜色为light主题,然后在设置nav文字的地方针对文字设置文字颜色

return new MaterialApp(      title: '123213',      theme: ThemeData(        colorScheme: ColorScheme.light().copyWith(primary: Colors.white,),      ),      home: new RandomWords(),    );

通过上面设置主题

appBar: new AppBar(        title: new Text('Startup Name Generator514',style: TextStyle(color: Colors.blue),),        actions: [          new IconButton(onPressed: _pushSaved, icon: new Icon(Icons.list))        ],      ),

在设置title里面正对Text设置文字颜色

验证过的代码

theme: new ThemeData(        // 这里就是参数        brightness: Brightness.light,        primaryColor: Colors.white,      ),
// 验证没有效果,显示还是默认蓝色


theme: ThemeData(        colorScheme: ColorScheme.light().copyWith(primary: Colors.white,),      ),
// 验证后可以设置主题,但是具体文字颜色还需要重新设置

theme: ThemeData(primarySwatch: Colors.orange, primaryColor: Colors.white), 
// 验证后可以设置主题颜色主要是primarySwatch有效果,设置primaryColor没有任何效果

具体后续针对nav文字,以及按钮等设置主题颜色待后续继续探索