如果设备的屏幕宽度高于某个树型窗口,如何将列窗口小部件动态更改为行窗口小部件?
使用 case 是,当用户在平板电脑或横向模式下使用应用程序时,布局应该有所不同,以优化可用宽度的使用.
在CSS flexbox中,只需将类从flex行更改为flex列即可,但在Flatter中,使用了小部件.
如果设备的屏幕宽度高于某个树型窗口,如何将列窗口小部件动态更改为行窗口小部件?
使用 case 是,当用户在平板电脑或横向模式下使用应用程序时,布局应该有所不同,以优化可用宽度的使用.
在CSS flexbox中,只需将类从flex行更改为flex列即可,但在Flatter中,使用了小部件.
Row
和Column
共享共同的父项Flex
,该父项采用轴方向.只需更改direction
的值,就可以将Flex
更改为行或列.
要获得屏幕宽度,可以使用MediaQuery.of(context).size.width
.
您的小部件应该如下所示:
@override
Widget build(BuildContext context) {
bool isScreenWide = MediaQuery.of(context).size.width >= kMinWidthOfLargeScreen;
return Scaffold(
body: Flex(
direction: isScreenWide ? Axis.horizontal : Axis.vertical,
children: <Widget>[
...
],
)
);
}