【问题标题】:onConfigurationChanged is not triggeredonConfigurationChanged 未触发
【发布时间】:2018-03-02 16:57:37
【问题描述】:

我想根据设备旋转设置活动配置。

我使用以下方法处理旋转:

@Override
public void onConfigurationChanged(Configuration newConfig) {
.....
}

它可以从纵向旋转到横向。回调触发和应用的方向改变。

但是当它是横向时它不会触发围绕设备旋转。但是应用程序的方向发生了变化。

我在清单中添加了以下行。

<uses-permission android:name="android.permission.WRITE_SETTINGS" />

android:configChanges="orientation|screenSize"

我该如何处理?

【问题讨论】:

    标签: android orientation


    【解决方案1】:
    android:configChanges="orientation|keyboardHidden|screenSize" rather than android:configChanges="orientation"
    

    确保你没有打电话

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    任何地方。这将导致onConfigurationChange() 无法触发。

    另外,请检查您的 manifest 中是否使用了 android:screenOrientation

    或者,在java代码中setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    要将您的Activity 的方向强制为纵向模式,您不适合接收方向更改。

    所以解决方案是不要setRequestOrientation 到特定模式。但改为使用SCREEN_ORIENTATION_SENSOR

    参考:Android onConfigurationChanged not being called

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多