基于SharedPreferences设置Scaffold ThemeData的最佳方法

时间:2019-09-02 21:41:29

标签: flutter

我在shared_preferences插件中有一个字符串,用于存储特定的ThemeData小部件。哪种/哪里最好的方法是从shared_preferences插件中读取该字符串,以便可以设置整个应用程序的ThemeData?这是在应用启动期间。

2 个答案:

答案 0 :(得分:0)

您可以使用设置页来保存和获取数据

 saveprefs(bool val) async {
 SharedPreferences prefs = await SharedPreferences.getInstance();
 // checkfont = val;
 // prefs.setBool("checkfont", checkfont);
 getprefs();
 } // save sharde

 getprefs() async {     
 /*    SharedPreferences prefs = await SharedPreferences.getInstance();              
 checkfont = prefs.getBool("checkfont");
 if (checkfont == true) {
 myfont = 18;
 prefs.setDouble("myfont", 18);
 } else {
 myfont = 16;
  prefs.setDouble("myfont", 16);
      }*/

保存到设置页面后,您可以在另一个页面中调用数据

 getsharedpref() async {
 SharedPreferences prefs = await SharedPreferences.getInstance();
 myfont = prefs.getDouble("myfont");
 return myfont;
 } // get SharedPreferences

答案 1 :(得分:0)

能够通过在runApp()之前读取SharedPrefs实现此目的。 做了这样的事情:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  //Pull ThemeData() object from SharedPrefs here using 'await'
  runApp();
}