Flutter Auto Orientation
一个用于 Flutter 应用强制切换屏幕方向 的插件,支持 Android 与 iOS 平台。 可用于需要在运行时动态切换屏幕方向的场景,比如视频播放器、游戏界面、全屏展示页面等。
功能特点
- ✅ 支持 Android 与 iOS 双平台,适配 iOS 16+ 新 API
- ✅ 简单易用,仅需一行代码即可切换方向
- ✅ 灵活控制:支持 竖屏(上 / 下)、横屏(左 / 右)、自动模式、用户配置模式
- ✅ 支持在自动模式下强制使用传感器
安装
flutter pub get flutter_auto_orientation
使用示例
注意事项
iOS 平台
Info.plist
配置: 必须在Runner/Info.plist
文件中声明应用支持的所有方向,否则插件调用将失败。例如,如果要支持竖屏倒置,需要添加UIInterfaceOrientationPortraitUpsideDown
。
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
- 旧版系统兼容性: 对于
iOS 16.0
以下的设备,插件使用了非官方API
,这可能导致应用在App Store
审核时被拒绝。此情况下的功能无法得到官方保证,请谨慎使用。 - 多任务模式: 在
iPad
等设备上,如果应用运行在分屏视图(Split View
)或滑动覆盖(Slide Over
)模式下,系统会禁用任何编程方式的屏幕方向更改。插件调用会静默失败,应用界面方向将由系统控制。
Android 平台
AndroidManifest.xml
: 请确保目标Activity
未在AndroidManifest.xml
中使用android:screenOrientation
属性强制指定方向,否则会覆盖插件的设置。portraitAutoMode
行为: 在某些Android
设备上,portraitAutoMode
可能无法支持 180 度反向旋转(即竖屏倒置)。如果你需要完全根据传感器在所有四个方向上自由旋转,请使用fullAutoMode
。