0

我正在使用 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(
4

0 回答 0