Flutter如何处理方向变化

Gau*_*ham 6 flutter

方向更改处理是否与使用Flutter中更新的维度重新运行窗口小部件的构建一样简单?

我问,因为在Android中,重建了整个Activity,这就是为什么所有信息都是通过意图发送的.

设计小部件时要记住的任何问题,以便他们处理方向更改或其他导致UI更改的更改?

Jon*_*ams 8

基本上 - 是的!现在,更具体地说,MediaQuery小部件侦听方向/大小/布局更改并重建它的子级.这个小工具已经是一个部分MaterialAppWidgetsApp小部件,所以你可能不需要把它列入.

如果希望窗口小部件利用设备方向,则可以使用MediaQuery.of静态成员访问MediaQueryData包含设备方向的a.例如,它显示在纵向和横向不同的文本的简单微件(必须的孩子MaterialApp,WidgetsAppMediaQuery).

class MyWidget extends StatelessWidget {
  Widget build(BuildContext context) {
    final mediaQueryData = MediaQuery.of(context);
    if (mediaQueryData.orientation == Orientation.landscape) {
      return const Text('landscape');
    }
    return const Text('portrait!');
  }
}
Run Code Online (Sandbox Code Playgroud)