方向更改处理是否像小部件的构建在Flutter 中使用更新的尺寸重新运行一样简单?
我之所以这样问,是因为在Android中,整个活动都被重建了,这就是为什么所有的信息都是通过意图发送的.
在设计小部件以处理方向更改或其他导致UI更改的更改时,有什么需要牢记的问题吗?
方向更改处理是否像小部件的构建在Flutter 中使用更新的尺寸重新运行一样简单?
我之所以这样问,是因为在Android中,整个活动都被重建了,这就是为什么所有的信息都是通过意图发送的.
在设计小部件以处理方向更改或其他导致UI更改的更改时,有什么需要牢记的问题吗?
基本上是的!现在,更具体地说,MediaQuery
小部件会监听方向/大小/布局的变化,并重建其子部件.这个小部件已经是MaterialApp
和WidgetsApp
小部件的一部分,所以您可能不需要包含它.
如果希望小部件利用设备方向,可以使用MediaQuery.of
静态成员访问包含设备方向的MediaQueryData
.例如,一个简单的小部件在纵向和横向显示不同的文本(需要是MaterialApp
、WidgetsApp
或MediaQuery
的子对象).
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!');
}
}