判断横竖屏,拿height和width比较下就可以了,比如这样:
- MediaQuery.of(context).size.width >
- MediaQuery.of(context).size.height // 还可以 * 1.2 之类的(根据场景自己看着办[滑稽])
- ? "横屏"
- : "竖屏"
-
如果说要在横竖屏、应用显示尺寸改变时触发,那可以套一个OrientationBuilder,比如这样(新建了个 Flutter 项目用来示例,所以以下例子和使用场景其实不太匹配 [笑哭]):
- OrientationBuilder(
- builder: (context, orientation) {
- return Center(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: <Widget>[
- Text(
- MediaQuery.of(context).size.width >
- MediaQuery.of(context).size.height * 1.2 // height 这边多留了点,不需要的话可以看下一个例子(直接用 orientation)
- ? "横屏"
- : "竖屏",
- ),
- Text(
- "${MediaQuery.of(context).size.width} × ${MediaQuery.of(context).size.height}",
- style: Theme.of(context).textTheme.headline4,
- ),
- ],
- ),
- );
- },
- );
-
或者这样(直接用OrientationBuilder的orientation):
- OrientationBuilder(
- builder: (context, orientation) {
- return Center(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: <Widget>[
- Text(
- orientation == Orientation.landscape ? "横屏" : "竖屏",
- style: Theme.of(context).textTheme.headline4,
- ),
- ],
- ),
- );
- },
- );
-