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,
              ),
            ],
          ),
        );
      },
    );
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter中,你可以通过设置方向来实现固定的横效果。你可以在Flutter代码中使用SystemChrome来实现这个功能。首先,你需要在你的Flutter项目中添加flutter/services库。然后,可以按照以下步骤来进行设置: 1. 导入flutter/services库: ```dart import 'package:flutter/services.dart'; ``` 2. 在你的Flutter App的入口函数(通常是main函数)中,使用SystemChrome来锁定方向为横: ```dart void main() { SystemChrome.setPreferredOrientations([ DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight, ]); runApp(MyApp()); } ``` 上述代码将设置应用程序只能在横方向(左横和右横)上运行。 这样,当你启动你的Flutter App,它将被锁定在横模式,并且不会根据设备的方向自动改变。 请注意,在Android和iOS上设置的方向可能有所不同。你可以根据需要自行调整设置。 希望这个解答能够帮到你!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Flutter中获取监听方向、锁定方向](https://blog.csdn.net/adojayfan/article/details/124590243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值