【问题标题】:Orientation issue in Android 7.1.1 and aboveAndroid 7.1.1 及更高版本中的方向问题
【发布时间】: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


【解决方案1】:

以下代码适用于所有设备:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} ... enter code here ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多