我正在使用
MediaQuery.of(context).size;
在我的项目中,稳定通道的布局会根据宽度而变化。它对我来说毫无问题。我写了一个区分大屏幕(平板电脑)和小屏幕(智能手机)的小部件。
class ScreenWidthBuilder extends StatelessWidget {
final Widget Function(BuildContext context, bool isAWideScreen) builder;
final int bigScreenUpFrom;
const ScreenWidthBuilder({Key key, @required this.builder, this.bigScreenUpFrom = 600}) : super(key: key);
@override
Widget build(BuildContext context) {
Size screenSize = MediaQuery.of(context).size;
// screenSize.width changes depending on screen orientation
bool isAWideScreen = screenSize.width >= this.bigScreenUpFrom;
return this.builder(context, isAWideScreen);
}
}
首先,我尝试使用
LayoutBuilder
小部件,但我能够用它获得更好的结果
MediaQuery.of(context).size;
。使用MediaQuery,您可以请求有关设备屏幕的许多数据(大小、文本ScaleFactor、方向等)。
有关更多信息,请查看: