簡體   English   中英

如何從外部SharedPreferences函數Flutter中使用var

[英]How use var from out side SharedPreferences function Flutter

我使用SharedPreferences保存字體大小,並且當(initstat)數據中的print(myfont)為Null時。 以及getprefs()之外的任何地方。 為什么呢?

我用這個代碼

  class MyASetting extends State<SettingPage> {
bool checkfont = true;
double myfont  ;

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

  getprefs() async {
  try {
   SharedPreferences prefs = await SharedPreferences.getInstance();
   setState(() {
     checkfont = prefs.getBool("checkfont");
    if (checkfont == true) {
      myfont = 20;
    } else {
      myfont = 16;
    }
    return myfont;
  });
} catch (e) {
  print("Sorry");
}
 } // get shared

 @override
 void initState() {
   super.initState();
   print(myfont);
   getprefs();
   }

將此置於setState范圍之外

  prefs.setBool("checkfont", checkfont);

您的最終代碼必須是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM