我的flutter web构建与调试中的工作方式不同

yebdmbv4  于 2023-02-25  发布在  Flutter
关注(0)|答案(1)|浏览(115)

我做了一个网站在flutter,然后我得到了一个建设。但版本在web调试和建设不一样的工作。
只有背景gif出现在页面上,它也是透明的。
我在xampp和各种主机中运行该网站进行测试,我更改了浏览器,但仍然得到相同的错误。
我重建了那个项目。我用了"扑动医生","扑动清洁",但没有效果。
Web控制台中似乎没有错误。
Web调试结果:
enter image description here
-——-
构建结果
enter image description here

  • 当我为android构建这个项目时,它运行良好,并给出了相同的结果。*
  • 我也构建了flutter for web的经典代码,它产生了相同的结果,没有任何问题。*
  • --------------编辑1-------------------
    我添加了appbar到我的代码中,我看到它是在build中添加的,没有任何问题。enter image description here

然后在我的代码中,我删除了scaffold的body属性所附带的stack小部件,并将所有容器涂成红色。2我看到,不是整个页面而是各行都变灰了。3(注意:背景gif在堆栈中,我也删除了它。)
enter image description here

  • ----------------------编辑3-----------
    我在SO中发现了另一个类似的问题。
    我的天!
  • ----------------------编辑3-----------
    我注意到一件重要的事。
    我发现了这个问题,但我不明白为什么会发生,以及如何解决它。
    如果堆栈中的扩展和fittedbox小部件被移除,问题就会消失。
    第1页(问题状态):
return Stack(
      children: [
        Positioned.fill(
          child: Container(
            child: Image.asset(
              "ImageAssets/mobile.gif",
              fit: BoxFit.fill,
            ),
          ),
        ),
        Center(
          child: Positioned(
            top: 0,
            left: 0,
            child: Container(
              width: 1200,
              height: 3999,
              child: Row(
                children: [
                  Expanded(
                    flex: 1,
                    child: SingleChildScrollView(
                      controller: _scrollController,
                      child: Container(
                        width: 600,
                        height: 1000,
                        color: Colors.brown.withOpacity(0.2),
                        child: Column(
                          children: [
                            buttonFunc("Home",_scrollController,context),
                            buttonFunc("Home",_scrollController,context),
                            buttonFunc("Home",_scrollController,context),
                            buttonFunc("Home",_scrollController,context),
                          ],
                        ),
                      ),
                    ),
                  ),
                  Expanded(
                    flex: 3,
                    child: SingleChildScrollView(
                      child: Container(
                        height: 3999,

                        child: Column(
                          children: [

                            TextBox(leftMarginValue: widthSize/4,topMarginValue: heightSize/20,insideText: "Testibulum arcu elit, interdum vel porttitor eu.",context: context),
                            TextBox(leftMarginValue: widthSize/80,topMarginValue: heightSize/20,rightMarginValue: widthSize/4-widthSize/80,insideText: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",context: context),

                          ],
                        ),
                      ),
                    ),
                  ),
                ],
              ),
            ),
          ),
        ),
      ],
    );

第2页(问题状态):

child: Stack(
          children: [
            Container(

              height: heightSize / 8,
              width: widthSize / 5,
              decoration: BoxDecoration(
                borderRadius: BorderRadiusDirectional.circular(22),
                color: Colors.grey,
                border: Border.all(color: Colors.white, width: 2),
              ),
              child: Center(
                child: Padding(
                  padding: EdgeInsetsDirectional.only(
                      start: widthSize / 80,
                      end: widthSize / 80,
                      top: heightSize / 80,
                      bottom: heightSize / 80),
                  child: Expanded(
                    child: FittedBox(
                      child: Text(
                        softWrap: false,
                        overflow: TextOverflow.ellipsis,

                        insideText,

                        style: TextStyle(
                            fontSize: widthSize / 50, color: Colors.white),
                      ),
                    ),
                  ),
                ),
              ),
            ),
          ],
        ),

如果我构建上面的代码,屏幕完全是灰色的。
第2页(从堆栈中删除扩展和安装):

return Stack(
      children: [
        Container(
          child: Image.asset(
            "ImageAssets/mobile.gif",
            fit: BoxFit.fill,
          ),
        ),
        Center(
          child: Container(
            width: 1200,
            height: 3999,
            child: Row(
              children: [
                SingleChildScrollView(
                  controller: _scrollController,
                  child: Container(
                    width: 600,
                    height: 1000,
                    color: Colors.brown.withOpacity(0.2),
                    child: Column(
                      children: [
                        buttonFunc("Home",_scrollController,context),
                        buttonFunc("Home",_scrollController,context),
                        buttonFunc("Home",_scrollController,context),
                        buttonFunc("Home",_scrollController,context),
                      ],
                    ),
                  ),
                ),
                SingleChildScrollView(
                  child: Container(
                    height: 3999,

                    child: Column(
                      children: [

                        TextBox(leftMarginValue: widthSize/4,topMarginValue: heightSize/20,insideText: "Testibulum arcu elit, interdum vel porttitor eu.",context: context),
                        TextBox(leftMarginValue: widthSize/80,topMarginValue: heightSize/20,rightMarginValue: widthSize/4-widthSize/80,insideText: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",context: context),

                      ],
                    ),
                  ),
                ),
              ],
            ),
          ),
        ),
      ],
    );

第2页(从堆栈中删除扩展和安装):

child: Stack(
          children: [
            Container(

              height: heightSize / 8,
              width: widthSize / 5,
              decoration: BoxDecoration(
                borderRadius: BorderRadiusDirectional.circular(22),
                color: Colors.grey,
                border: Border.all(color: Colors.white, width: 2),
              ),
              child: Center(
                child: Padding(
                  padding: EdgeInsetsDirectional.only(
                      start: widthSize / 80,
                      end: widthSize / 80,
                      top: heightSize / 80,
                      bottom: heightSize / 80),
                  child: Text(
                    softWrap: false,
                    overflow: TextOverflow.ellipsis,

                    insideText,

                    style: TextStyle(
                        fontSize: widthSize / 50, color: Colors.white),
                  ),
                ),
              ),
            ),
          ],
        ),

如果我构建了上面的代码,灰色就会消失。
以下是新代码的构建示例
enter image description here

zbdgwd5y

zbdgwd5y1#

是的,我修复了错误。
变灰的原因是我在堆栈结构中使用了不正确的布局小部件。这里是最令人困惑的部分。当你进行调试时,这些错误可以修复,但当你进行构建时,它会导致变灰。
有3个步骤可以消除此代码的灰色。
之前:enter image description here
1-)
在下面的代码中,有必要删除"Positioned.fill"小部件。
当您删除此小工具时,您将删除覆盖屏幕的灰色。
之后:enter image description here

return Stack(
      children: [
        Positioned.fill(  //you have to remove this widget for solve problem
          child: Container(
            child: Image.asset(
              "ImageAssets/mobile.gif",
              fit: BoxFit.fill,
            ),
          ),
        ),

之前:enter image description here
2-)要解决侧边栏是灰色的问题,需要删除包裹文本的扩展
之后:enter image description here

child: Expanded(  //you have to remove this widget for solve problem
                    child: FittedBox(
                      child: Text(
                        softWrap: false,
                        overflow: TextOverflow.ellipsis,

                        insideText,

                        style: TextStyle(
                            fontSize: widthSize / 50, color: Colors.white),
                      ),
                    ),

之前:enter image description here
3-)AnimetedTextKit中展开的小部件需要移除,以解决页面内容中的灰色问题。
之后:enter image description here

child: Expanded( //you have to remove this widget for solve problem
        child: AnimatedTextKit(

          animatedTexts: [
            TypewriterAnimatedText(

              insideText,

              textAlign: TextAlign.center,
              textStyle:  TextStyle(
                //was 20
                fontSize: widthSize/150+heightSize/150,
                color: Colors.white,
                height: heightSize/500 ,
              ),
              speed: const Duration(milliseconds: 200),
            ),
          ],
          totalRepeatCount: 4,
          pause: const Duration(milliseconds: 99000),
          displayFullTextOnTap: true,
          stopPauseOnTap: true,
        ),
      ),

相关问题