安卓7.1.1及以上版本的方向问题

4
当应用程序在横屏模式下启动时,即使以编程方式将方向设置为纵向,它也会在横屏模式下打开并切换回纵向。 我认为当屏幕方向以编程方式设置为纵向时,应用程序应该保持在纵向模式下,无论在哪种模式下启动。 我知道如果在清单中将屏幕方向设置为纵向,这个问题就可以解决,但我需要以编程方式设置方向。如果有人遇到过这个问题或者有任何想法来解决这个问题,请告诉我。 只有在应用程序启动时才会出现这种情况。下一次旋转屏幕时,它就能正常工作了。
以下是我用于锁定方向为纵向的代码:
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    setContentView(R.layout.activity_main);
    }

这段代码在 Android 7.1.1 及以下版本中运行良好。


你尝试过从清单中设置方向吗? - Tarlan Ahad
请查看我的答案 - Hemant Parmar
我尝试了相同的代码,它在Android API 26和27上都能正常工作。我添加了 if(requestedOrientation != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; return },并且我正在使用Kotlin。 - Archit Sureja
@TarlanAhad 我已经在onCreate()中添加了setRequestedOrientation。onCreate方法将在onStart生命周期方法之前运行。 - SuReSh PaTi
@ArchitSureja 我直接设置了竖屏,但它没有起作用。 - SuReSh PaTi
显示剩余2条评论
1个回答

0
以下代码在所有设备上都可以正常运行:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} ... enter code here ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接