flutter - 如何在颤动中永久修复屏幕方向?
问题描述
假设我的应用程序有两个屏幕(屏幕 A 和 B)。我的应用程序从我已将设备方向设置为纵向的屏幕 A 开始。如-
Future<void> main() async {
setUpLocator();
// debugPaintSizeEnabled=true;
WidgetsFlutterBinding.ensureInitialized();
await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
MobileAds.instance.initialize();
await Firebase.initializeApp();
runApp(ChangeNotifierProvider<ThemeNotifier>(
create: (_) => ThemeNotifier(),
child: MyApp(),
));
}
通常它工作正常并且不会旋转屏幕,但问题出在屏幕 B 中,我使用了一个 youtube 播放器插件(https://pub.dev/packages/youtube_player_flutter)。当我打开 youtube 播放器的全屏模式时,它会旋转屏幕,这不是问题,但是如果我在全屏模式(youtube 播放器)下从 B 返回屏幕 A,那么屏幕 A 也会以横向模式出现。但我根本不希望屏幕 A 处于横向模式。我该如何解决这个问题?
解决方案
您还可以在init
下面设置特定屏幕,并确保它被调用,
@override
void initState(){
super.initState();
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
]);
}
推荐阅读
- javascript - React Redux - 组件不会在使用嵌套属性的状态更改时重新渲染
- discord.py - TypeError: can't send non-None value to a just-started coroutine discord.py
- c++ - 如何从用 g++ 编译的 Windows 程序中删除控制台?
- python - 如何从 pd.cut 范围中获取第一个值
- c# - C# 如何在调用 P/Invoke Sendmessage 时捕获 WIN32 0XFFFF 异常
- php - 通过控制器从 laravel 中的数据库创建下拉列表
- java - Android Studio - AVD 说一直停止
- python - Discord.py 给用户写直接消息
- javascript - JavaScript 到 Python
- python - 如何使用我的 reverse_lazy 函数解决此错误?