Flutter(七,阿里Android开发手册

ThemeData _buildDarkTheme() {
const Color primaryColor = Color(0xFF0175c2);
final ThemeData base = new ThemeData.dark();
return base.copyWith(
primaryColor: primaryColor,
buttonColor: primaryColor,
indicatorColor: Colors.white,
accentColor: const Color(0xFF13B9FD),
canvasColor: const Color(0xFF202124),
scaffoldBackgroundColor: const Color(0xFF202124),
backgroundColor: const Color(0xFF202124),
errorColor: const Color(0xFFB00020),
buttonTheme: const ButtonThemeData(
textTheme: ButtonTextTheme.primary,
),
textTheme: _buildTextTheme(base.textTheme),
primaryTextTheme: _buildTextTheme(base.primaryTextTheme),
accentTextTheme: _buildTextTheme(base.accentTextTheme),
);
}

###二.使用自定义主题
拥有了自定义主题之后,我们就可以在最初的MaterialApp初始化的时候设置使用它。在一些需要特殊使用指定颜色的地方可以直接获取到theme对象后再使用。

Text(widget.options.theme.toString(),
style: TextStyle(
color: widget.options.theme.data.textTheme.body1.color),),

当需要动态改变主题的时候,使用StatefulWidget的setState(() {})方法可以直接切换。

###三.保存主题
我们希望主题更改后下次启动App还能保留最后一次修改后的主题,那么我们就要用到shared_preferences存起来。

void putAppString(String key, String value) async {
(await SharedPreferences.getInstance()).setString(key, value);
}

当App启动的时候从shared_preferences取出来,然后调用Widget刷新即可。

static Future getAppString(String key) async {
return (await SharedPreferences.getInstance()).getString(key);
}

题外话

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。
CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》

【Android思维脑图(技能树)】

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

需要的朋友,可以点赞关注+转发”前往免费领取!

pcRmeK2-1630575780419)]

需要的朋友,可以点赞关注+转发”前往免费领取!

希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~

你可能感兴趣的:(Android,android,flutter,面试,移动开发)