0

我在 Flutter 中进行响应式 UI 设计。然后我在我的android模拟器中调试它。第一个方向是纵向的,这很好。然后我改变了方向,这是一个糟糕的用户界面,这是意料之中的。如果我热重启或热重载 UI 更改,这是意料之中的。更改方向后,我必须始终重新加载或重新启动。保存后已对自动重新加载进行了设置。如何解决这个问题?

4

2 回答 2

1

你需要让你的 UI 响应式。您可以使用“MediaQuery”来完成。例子:

return Scaffold(
  appBar: AppBar(
    title: Text("Responsive Container"),
  ),
  body: Center(
    child: Column(
      mainAxisAlignment: MainAxisAlignment.center,
      crossAxisAlignment: CrossAxisAlignment.center,
      children: [
        Container(
          height: MediaQuery.of(context).size.height/ 4,
          width: MediaQuery.of(context).size.width/3,
          color: Colors.red,
          child: Center(child: Text("Hello There !")),
        ),
      ],
    ),
  ),
);
于 2021-10-20T14:11:51.400 回答
0

Yuu 说您正在创建响应式 UI,这意味着您正在使用屏幕的宽度和高度来使其具有响应性。当方向发生变化时,宽度明显增加,高度降低,因此您可能需要添加对方向变化的检查。有很多方法可以做到,这里是最简单的一种

return Scaffold(
        key: scaffoldKey,
        body: OrientationBuilder(
          builder: (BuildContext context, Orientation orientation) {
            orientation == Orientation.portrait ? 
                      doSomeThingifportrait : doSomethingifLandscape;
          },
        ),
);
于 2021-10-20T08:17:09.133 回答