在Flutter中,如果一个BoxDecoration同时具有borderRadius和boxShadow,则边框不显示

问题描述 投票:0回答:1

问题很简单,我有一个名为 SelectBox 的小部件,带有“active”参数。如果 active 为 true,那么应该有阴影和白色边框,但边框不再出现!当 active 为 false 时,将显示边框。自从我更新了 flutter (3.27.1) 以来,我遇到了这个问题。这是我的小部件:

class SelectBox extends StatelessWidget {
  const SelectBox({super.key, required this.text, required this.active});
  final bool active;
  final String text;

  @override
  Widget build(BuildContext context) {
    return Container(
      decoration: BoxDecoration(
          borderRadius: const BorderRadius.all(Radius.circular(5)),
          border: Border.all(
            width: 2,
            color: Colors.white,
          ),
          boxShadow: [
            if (active)
              BoxShadow(
                color: Colors.white.withValues(alpha: 0.7),
                blurRadius: 30,
                blurStyle: BlurStyle.outer,
              )
          ]),
      child: Padding(
        padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 5),
        child: Text(
          text,
          style: const TextStyle(
              color: Colors.white,
              fontWeight: FontWeight.bold,
              fontStyle: FontStyle.italic,
              fontSize: 20.0),
        ),
      ),
    );
  }
}

如果我尝试从框装饰中删除 borderRadius,则会显示边框,但它不是圆形的!我尝试了不同的解决方案,例如我尝试使用两个不同的容器,一个用于阴影,另一个用于边框,但无济于事。

flutter dart widget
1个回答
0
投票

我刚刚复制了您的代码并使用 Flutter 3.27.1 运行。对我来说效果很好。应该还有其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.