这段代码非常简单:显示一个模式的底部板材,当用户单击按钮时,板材的高度会增加10.

但什么都没发生.实际上,只有当用户用手指"滑动"底部的工作表时,它才会更新其大小(我相信滑动会导致工作表上的内部setState).

我的问题是:如何调用ModalBottomSheet的更新状态?

showModalBottomSheet(
    context: context,
    builder: (context) {
      return Container(
        height: heightOfModalBottomSheet,
        child: RaisedButton(

            onPressed: () {
              setState(() {
                heightOfModalBottomSheet += 10;
              });

            }),
      );
    });

推荐答案

你也许可以使用ScaffoldState路中的showBottomSheet路.阅读更多关于这个展会底单的here多篇文章.

这将显示BottomSheet并返回控制器PersistentBottomSheetController.使用此控制器,您可以调用controller.SetState((){}),它将重新呈现BottomSheet.

下面是一个例子

PersistentBottomSheetController _controller; // <------ Instance variable
final _scaffoldKey = GlobalKey<ScaffoldState>(); // <---- Another instance variable
.
.
.
void _incrementBottomSheet(){
    _controller.setState(
        (){
            heightOfModalBottomSheet += 10;
        }
    )
}
.
void _createBottomSheet() async{
  _controller = await _scaffoldKey.currentState.showBottomSheet(
        context: context,
        builder: (context) {
           return Container(
               height: heightOfModalBottomSheet,
               child: RaisedButton(
               onPressed: () {
                  _incrementBottomSheet()
              }),
         );
      });
}

Flutter相关问答推荐

使用Flutter,使用Photoshop下载的二进制文件(wav)发生意外转换

如何更改默认应用程序启动器/启动屏幕

如何为Android 12及以上设备以及Android 11及以下设备动态处理Splash Screen?如果可能的话没有包裹

如何实现Flutter 梳理机图像的小量移动

如何确定Flutter 中的文本 colored颜色 ?

为什么FloatingActionButton未显示

如何在点击查看措辞下方添加句子?

如何在Flutter中将背景 colored颜色 更改为黑色?

Flutter 构建 Web 分段故障 - 无法启动事件处理程序线程

如何在 Flutter 中创建厚度沿着容器逐渐减小的边框

Flutter 自定义对齐

如何在 Flutter 中的 BackdropFilter.blur 中制作一个 100x100 的清晰孔

Listview 如何转到下一行/新行?

Flutter - 定义按钮的优雅方式

Flutter RawMaterialButton 常量相对大小

如何使用 Row 和 Column 制作 L 形布局?

我一直在try 创建按钮以导航到第二页,但不知何故 RaisedButton 功能无法正常工作

如何在 SingleChildScrollView 小部件中管理自定义小部件状态

Flutter_riverpod 安装时出现问题

检索 api 的值时,我得到_TypeError(类型'Null'不是'String'类型的子类型)