ModalBottomSheet 内的 TextField 性能问题

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

我希望在使用

showModalBottomSheet
打开的 ModalBottomSheet 中显示一些文本字段。

在 iPhone 模拟器上运行时一切正常。但是在设备上运行时单击按钮打开 ModalBottomSheet 时会出现性能问题。

单击按钮会挂起 2-3 秒,然后打开模态表并且没有动画。释放模式并再次打开后,它按预期工作 - 只是第一次出现这种性能影响。

我从模态中的代码中删除了所有内容,并注意到如果模态上有

TextField
,就会发生这种情况。所以我尝试了最简化的代码:

await showModalBottomSheet(
    context: context,
    isScrollControlled: true,
    builder: (context) => TextField()
);

这个简单的代码也会导致我上面描述的性能问题。如果我设置

autofocus
打开键盘,情况会变得更糟(通常单击打开键盘的字段也会持续 1-2 秒)。

我尝试使用

await
和不使用它来运行此代码 - 相同的结果。

我在这里做错了什么?

flutter
1个回答
0
投票
void _openModalSheet() async{
    return showModalBottomSheet(
        context: context,
        builder: (BuildContext context){
          return Form(
            child: Padding(
              padding: const EdgeInsets.all(25),
              child: Column(
                children: [
                  TextFormField(
                    decoration: const InputDecoration(
                      border: OutlineInputBorder()
                    ),
                  ),
                  const SizedBox(height: 20),
                  TextFormField(
                    decoration: const InputDecoration(
                        border: OutlineInputBorder()
                    ),
                  )
                ],
              ),
            ),
          );
        }
    );
  }

我创建了这个基本功能来打开模态底部表单,它在设备和模拟器上都运行良好。

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