Dart 更改底部板材的灰色覆盖背景

Dart 更改底部板材的灰色覆盖背景,dart,flutter,Dart,Flutter,使用showModalBottomSheet时,是否有方法更改覆盖背景颜色 现在的颜色总是灰色,但我想使用不同的颜色,如下图所示的绿色 下面是演示中使用的代码,以供参考 showModalBottomSheet<void>(context: context, builder: (BuildContext context) { return Container( child: Padding( p

使用
showModalBottomSheet
时,是否有方法更改覆盖背景颜色

现在的颜色总是灰色,但我想使用不同的颜色,如下图所示的绿色

下面是演示中使用的代码,以供参考

        showModalBottomSheet<void>(context: context, builder: (BuildContext context) {
          return Container(
            child: Padding(
              padding: const EdgeInsets.all(32.0),
              child: Text('This is the modal bottom sheet. Tap anywhere to dismiss.',
                textAlign: TextAlign.center,
                style: TextStyle(
                  color: Theme.of(context).accentColor,
                  fontSize: 24.0
                )
              )
            )
          );
        });
showModalBottomSheet(上下文:context,builder:(BuildContext){
返回容器(
孩子:填充(
填充:常数边集全部(32.0),
child:Text('这是模式的底部工作表。点击任意位置可关闭。',
textAlign:textAlign.center,
样式:TextStyle(
颜色:主题。背景。强调颜色,
字体大小:24.0
)
)
)
);
});

简短回答:你不能


颜色被硬编码到
\u ModalBottomSheetRoute
类(由@pskink链接)中,无法更改其值。

您可以实际更改此值,但为此,您必须创建此小部件文件的副本以对其进行自定义。(以下步骤适用于vscode)

然而,通过这样做,小部件不会被flifter自动更新,因为它不再是SDK的一部分

创建要自定义的小部件副本

  • 右键单击小部件并选择
    转到定义
    ——这将使您进入小部件的原始文件

  • 复制所有代码并将其粘贴到具有相同名称的新.dart文件中-您会注意到,由于缺少依赖项,现在将出现错误

  • 对于底板,您只需要添加
    import“package:flatter/material.dart”

  • 现在像导入“package:projectname/bottom_sheet.dart”一样导入它作为我的-与我的相同的
    允许它使用相同的.dart文件名

  • 现在,当引用它时,只需添加
    my.
    previor,就像这样


  • 自定义背景覆盖颜色

    现在在
    底部的表单中。省道
    只需搜索barrierColor并将
    颜色更改为您想要的任何颜色。black54


    我希望这将有助于任何人在未来


    相关问题


    新的颤振更新允许您更改
    showModalBottomSheet()中的
    barrierColor


    看到完美!这就容易多了
    my.showModalBottomSheet(
            context: (context),
            isScrollControlled: false,...
    
    showModalBottomSheet(
          barrierColor: Colors.yellow.withOpacity(0.5),