Flutter 如何修复八角形浮动ActionButton错误?

Flutter 如何修复八角形浮动ActionButton错误?,flutter,dart,Flutter,Dart,我正在构建的应用程序中有一个非常奇怪的bug。我的一个图标出现视觉错误,它基本上不会加载FloatingActionButton的背景。它似乎与图标在堆栈中的位置有关 我尝试过切换堆栈中的两个图标,这将问题转移到了另一个图标,因此它似乎与堆栈中的第四个位置有关。但是,如果我在那里添加一个空容器(只是为了尝试),实际上并不能解决问题。我可以在虚拟设备和我的实际手机上复制这个问题。它只在我更新构建状态时显示 我已在实际应用程序中上传了该问题的屏幕截图: 这是保存按钮的堆栈: Stack(

我正在构建的应用程序中有一个非常奇怪的bug。我的一个图标出现视觉错误,它基本上不会加载FloatingActionButton的背景。它似乎与图标在堆栈中的位置有关

我尝试过切换堆栈中的两个图标,这将问题转移到了另一个图标,因此它似乎与堆栈中的第四个位置有关。但是,如果我在那里添加一个空容器(只是为了尝试),实际上并不能解决问题。我可以在虚拟设备和我的实际手机上复制这个问题。它只在我更新构建状态时显示

我已在实际应用程序中上传了该问题的屏幕截图:

这是保存按钮的堆栈:

Stack(
            children: <Widget>[
              Container(
                height: (screenHeight / 4),
                width: screenWidth,
              ),
              Positioned(
                bottom: 0.0,
                left: -(screenWidth / 2),
                child: ClipRect(
                  child: Container(
                    height: ovalHeight,
                    width: ovalWidth,
                    decoration: BoxDecoration(
                      color: Colors.white,
                      borderRadius: BorderRadius.only(
                          topLeft:
                              Radius.elliptical((ovalWidth), (ovalWidth / 3)),
                          topRight:
                              Radius.elliptical((ovalWidth), (ovalWidth / 3))),
                    ),
                  ),
                ),
              ),
              Align(
                alignment: Alignment(0.5, 0.0),
                child: SizedBox(
                  height: (screenWidth / 6),
                  width: (screenWidth / 6),
                  child: FloatingActionButton(
                    heroTag: 2,
                    backgroundColor: mainColor,
                    onPressed: () {
                      Navigator.push(
                          context,
                          MaterialPageRoute(
                              builder: (context) => HistoryScreen()));
                    },
                    child: Icon(Icons.assessment),
                  ),
                ),
              ),
              Align(
                alignment: Alignment(-0.5, 0),
                child: SizedBox(
                  height: (screenWidth / 6),
                  width: (screenWidth / 6),
                  child: FloatingActionButton(
                    heroTag: 3,
                    backgroundColor: mainColor,
                    onPressed: () {
                      Navigator.push(
                          context,
                          MaterialPageRoute(
                              builder: (context) => InfoScreen()));
                    },
                    child: Icon(Icons.info),
                  ),
                ),
              ),

            ],
          ),
堆栈(
儿童:[
容器(
高度:(屏幕高度/4),
宽度:屏幕宽度,
),
定位(
底部:0.0,
左:-(屏幕宽度/2),
孩子:ClipRect(
子:容器(
身高:椭圆形,
宽度:椭圆形,
装饰:盒子装饰(
颜色:颜色,白色,
borderRadius:仅限borderRadius(
左上角:
椭圆半径((椭圆宽度),(椭圆宽度/3)),
右上角:
椭圆半径((椭圆宽度),(椭圆宽度/3)),
),
),
),
),
对齐(
对齐:对齐(0.5,0.0),
孩子:大小盒子(
高度:(屏幕宽度/6),
宽度:(屏幕宽度/6),
子:浮动操作按钮(
heroTag:2,
背景颜色:主色,
已按下:(){
导航器。推(
上下文
材料路线(
生成器:(上下文)=>HistoryScreen());
},
子:图标(图标。评估),
),
),
),
对齐(
对齐:对齐(-0.5,0),
孩子:大小盒子(
高度:(屏幕宽度/6),
宽度:(屏幕宽度/6),
子:浮动操作按钮(
赫罗塔格:3,
背景颜色:主色,
已按下:(){
导航器。推(
上下文
材料路线(
生成器:(context)=>InfoScreen());
},
子:图标(Icons.info),
),
),
),
],
),

我期待着这个按钮能像它应该的那样显示出来,现在它显示的不是圆形背景,而是一个奇怪的半透明八角形(尽管仍然显示着子图标)。没有显示错误消息。

我相信我已经确定了问题的来源。它实际上来自我使用一个名为圆形图表的插件,当使用图表的圆角选项时,问题就出现了。不过,我还没有在插件的源代码中确定是什么导致了这个问题。如果我弄明白了,我会发帖的

我相信我已经确定了问题的来源。它实际上来自我使用一个名为圆形图表的插件,当使用图表的圆角选项时,问题就出现了。不过,我还没有在插件的源代码中确定是什么导致了这个问题。如果我弄明白了,我会发帖的

我测试了你的代码,在iPhoneX模拟器中看起来很正常。你用什么设备进行测试?我可以在我的iPhone X和Android模拟器上复制这个问题,但不能在模拟器上复制。可能是这个问题不是源于这个代码。我在真正的iPhoneX上测试过,它仍然是正常的。我猜您还有其他一些影响渲染的代码。因为我只是复制了你的堆栈小部件,并删除了不必要的部分以使其正常工作。你能简化并共享该屏幕的整个小部件树吗?你是对的,我已经确定了问题,它源自我正在使用的一个圆形图表插件,如果我在图表动画中使用“圆角”选项,则会发生此错误,因此问题似乎在插件中,而不是在我的代码中。谢谢你的帮助!我测试了你的代码,在iPhoneX模拟器中看起来很正常。你用什么设备进行测试?我可以在我的iPhone X和Android模拟器上复制这个问题,但不能在模拟器上复制。可能是这个问题不是源于这个代码。我在真正的iPhoneX上测试过,它仍然是正常的。我猜您还有其他一些影响渲染的代码。因为我只是复制了你的堆栈小部件,并删除了不必要的部分以使其正常工作。你能简化并共享该屏幕的整个小部件树吗?你是对的,我已经确定了问题,它源自我正在使用的一个圆形图表插件,如果我在图表动画中使用“圆角”选项,则会发生此错误,因此问题似乎在插件中,而不是在我的代码中。谢谢你的帮助!