【发布时间】:2017-12-27 06:00:35
【问题描述】:
当应用程序以横向模式启动时,它会以横向模式打开并切换回纵向,尽管方向以编程方式设置为纵向。 我想当屏幕方向以编程方式设置为纵向时,无论您在哪种模式下启动,应用程序都应该保持纵向模式。 我知道我们是否在清单中将屏幕方向设置为纵向 将解决这个问题,但我需要以编程方式设置方向。让我知道是否有人遇到此问题或有任何解决此问题的想法。 仅在启动应用程序时才会发生这种情况。下次旋转屏幕时,它工作正常。
下面是我用来将方向锁定为纵向的代码,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_main);
}
此代码在 Android 7.1.1 以下运行良好。
【问题讨论】:
-
您是否尝试从清单设置方向?
-
@TarlanAhad 如果我们在清单中将屏幕方向设置为纵向将解决此问题,但我需要以编程方式设置方向
-
看看my_ans
-
尝试在你的 onStart() 方法中添加这个
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); -
我尝试了相同的代码,它在 android api 26 和 27 上都可以正常工作。我添加了
if(requestedOrientation != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; return },我正在使用 kotlin。
标签: android android-manifest orientation android-os-handler