我们在上一章回中介绍了"如何自定义Radio组件"相关的内容,本章回中将介绍如何禁止页面随手机自动旋转.闲话休提,让我们一起Talk Flutter吧。
1. 概念介绍
在手机默认设置下,手机上应用程序的页面可以随着手机的旋转而自动旋转,比如我们看视频时把手机旋转成横屏,视频播放程序会自动跟着旋转成横屏。这个功能可以
在手机上设置。如果我们不想在手机上设置,而是在应用程序中设置,怎么办呢?本章回中将介绍如何在应用程序中禁止页面跟随手机自动旋转。
2. 使用方法
2.1 全面禁止
我们在这里介绍的全面禁止表示禁止应用程序中所有的页面。只需要在程序中使用setPreferredOrientations()方法就可以,对比一下Android原生开发中的禁止
方式就会发现,这个方法太好用了。它和IOS原生开发类似:可以对全部页面进行统一设置。而Android原生开发中需要对每个页面进行单独设置。
2.2 局部禁止
我们在这里说的局部禁止表示禁止应用程序中某个页面跟随手机自动旋转,只需要在程序中使用setPreferredOrientations()方法就可以。有看官说P: 这和全面
禁止的方法相同呀?是的,不过全面禁止是在应用程序的根部使用该方法,而且局部禁止是在某个页面中使用该方法。总之,禁止页面跟随屏幕旋转的方法相同,但是使用
的位置不同。如果有看官不理解的话,看看后面小节中的示例代码就能明白。
3. 示例代码
void main() {
///全局禁止页面自动适用屏幕
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((value) => runApp(const MainApp()));
}
上面的代码中使用了setPreferredOrientations()方法来禁止页面跟随手机旋转,不过需要在main.dart文件中的main方法中调用该方法,这样可以禁止MainApp
中所有的页面跟随手机旋转。
///在页面启动前设置为竖屏,在页面退出后恢复原来的设置
void initState() {
super.initState();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
}
void dispose() {
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight,
]);
super.dispose();
}
上面的代码中使用了setPreferredOrientations()方法来禁止页面跟随手机旋转,不过是在某个页面的初始化方法中调用该方法,这样可以禁止当前页面跟随手机
自动旋转,程序中的其它页面则不受影响。注意:在页面退出时再取消设置,当然了也可以不取消设置,让当前页面永远禁止跟随手机自动旋转。
4. 内容总结
最后,我们对本章回的内容进行全面的总结:
- 应用程序的页面在默认设置中会跟随手机自动旋转;
- 原生开发中Android只能对单个页面进行设置,IOS只能对所有页面进行设置;
- Flutter开发中既可以对单个页面进行单独设置也可以对所有页面进行统一设置;
- 禁止页面跟随手机系统自动旋转使用setPreferredOrientations方法;
看官们,与"如何禁止页面跟随手机自动旋转"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!