如何在不出现屏幕闪烁的情况下将 Loading Spinner 添加到 Layout Builder?

问题描述

我正在使用 layoutbuilder 开发一个应用程序,我对该应用程序有不同的视觉效果 我想显示用户从纵向模式变为横向模式时,微调器应显示,2 秒后微调器应消失。

我得到了我使用过的功能(WidgetsBinding.instance.addPostFrameCallback((_) { )),但是每次我改变方向时,加载微调器都会出现,然后在它消失后我的屏幕闪烁并且不会停止闪烁或闪烁

我明白原因是正在显示加载微调器,然后我的其他小部件正在重建,但我有一个格式,我需要全部成为有状态小部件,除非有人有其他想法?

  1. 用户将纵向更改为横向
  2. 微调器显示 2 秒
  3. 用户以横向方式看到屏幕。

Loadingshimmer 是带有加载器的类 singlechildscrollview 是横向模式...

bool loading = false; 

       child: LayoutBuilder(builder: (context,constraints) {
              if (constraints.maxWidth > 600 && constraints.maxHeight < 1000) {
         WidgetsBinding.instance.addPostFrameCallback((_) {       
                  setState((){
                loading = true;
});
});
                Timer(Duration(seconds: 1),() {
                setState(() {
                loading = false;
               
                 });
                });
    
                // child: OrientationBuilder(
                //   builder: (BuildContext context,Orientation orientation) {
                // if (orientation == Orientation.portrait) {
                // (constraints.maxWidth > 600) {
                print(height);
                print(width);
                return loading
                    ? LoadingShimmer()
                    : SingleChildScrollView(

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...