暂时以编程方式禁用Qt中的屏幕旋转

Tom*_*ica 5 c++ qt android

请注意:这个问题是关于Qt C ++框架的,而不是普通的Java API。在Java中,此问题已得到解答

在我的应用程序的主菜单中,我真的不想担心不同类型的屏幕旋转。我想禁用屏幕旋转,直到用户转到屏幕旋转有意义的其他视图为止。对于主菜单,我只想使用纵向视图。

如何实现呢?如何控制应用程序屏幕旋转?

pas*_*sbi 1

您可以使用设置方向

QAndroidJniObject activity = QtAndroid::androidActivity();
activity.callMethod<void>("setRequestedOrientation", "(I)V", orientation);
Run Code Online (Sandbox Code Playgroud)

其中orientation 是int代表方向的。您可以复制 文档中提供的代码(例如,0锁定横向、1锁定纵向和-1解锁任何旋转),但我建议使用,例如

QAndroidJniObject::getStaticField<int>("android.content.pm.ActivityInfo", "SCREEN_ORIENTATION_LANDSCAPE");
Run Code Online (Sandbox Code Playgroud)

获取代码值。

这个答案基于/sf/answers/2726311871/。不同的是,这个答案还解释了如何再次解锁旋转,并提供了一个示例来展示如何在不手动复制的情况下获取方向代码。