Flutter 判断横竖屏(含尺寸、方向改变时触发)

判断横竖屏,拿 heightwidth 比较下就可以了,比如这样:

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,
                ),
              ],
            ),
          );
        },
    );

或者这样(直接用 OrientationBuilderorientation):

    OrientationBuilder(
      builder: (context, orientation) {
        return Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                orientation == Orientation.landscape ? "横屏" : "竖屏",
                style: Theme.of(context).textTheme.headline4,
              ),
            ],
          ),
        );
      },
    );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值