Flutter 的小笔记 异步相关 弹窗 初始化

CC米饭 发布于 2022-12-18 10 次阅读


屏幕相关

设置屏幕横屏

Dart
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

弹窗

Dart
showModalBottomSheet(context: context,
        isScrollControlled: true,
        enableDrag: false,
        isDismissible: false,
        builder:(_)=> const Onbording(),);
    }

在初始化时使用弹窗用 delayed

Dart
Future.delayed(
      Duration.zero,(){
      showModalBottomSheet(context: context,
        isScrollControlled: true,
        enableDrag: false,
        isDismissible: false,
        builder:(_)=> const Onbording(),);
    }
    );</code></pre><p> 完整代码:</p><pre><code> void initState() {
    super.initState();
    //界面 build 完成后执行回调函数

    Future.delayed(
      Duration.zero,(){
      showModalBottomSheet(context: context,
        isScrollControlled: true,
        enableDrag: false,
        isDismissible: false,
        builder:(_)=> const Onbording(),);
    }
    );

  }

对于 SharedPreferences 的使用

Dart
void newversion() async{
  SharedPreferences? newversion = await SharedPreferences.getInstance();
  newversion.setString("version", version);
}</code></pre><p> 可以这样异步调用</p><pre><code>  void newversionpop() async{
    bool ispop = await isversion() ;
    setState(() {
      if(ispop == false){
        Future.delayed(
            Duration.zero,(){
          showModalBottomSheet(context: context,
            isScrollControlled: true,
            enableDrag: false,
            isDismissible: false,
            builder:(_)=> const Onbording(),);
        }
        );
      }
    });
}