onConfigurationChanged在android中没有被调用

时间:2013-07-31 02:18:11

标签: android screen-orientation android-orientation

我已创建示例程序来测试Orientation。如果纵向模式和我倾斜手机相反,我希望我的示例应用程序reversePortrait。在阅读了很多关于此的问题之后 - 想想我们需要使用:

   onConfigurationChanged(Configuration newConfig) 

我正在尝试以下方法:

    @Override
public void onConfigurationChanged(Configuration newConfig) 
{
    super.onConfigurationChanged(newConfig);

    Configuration c = getResources().getConfiguration();

    Log.e("Config",""+c);

    if (c.orientation == Configuration.ORIENTATION_PORTRAIT) 
    {
        // portrait

        Log.e("On Config Change","portrait");

    } 
    else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) 
    {
        // landscape
        Log.e("On Config Change","LANDSCAPE");

    }
}

的manifest.xml

android:configChanges="orientation" 

甚至试过这个

android:configChanges="orientation|screensize"

奇怪我没有在OnConfigurationChange方法中获取日志。

不确定。这里有什么问题?

我使用最小api 8来定位Api 18。

有人可以帮我解决这个问题吗?

谢谢!

3 个答案:

答案 0 :(得分:4)

将目标API更改为19后,我遇到了同样的问题(4.4 kitkat) 您需要为高于版本17的目标添加layoutDirection属性。

我的属性如下:

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|layoutDirection"

关键是添加'layoutDirection'

答案 1 :(得分:2)

我刚刚遇到这个问题,并用这个奇怪的小技巧修复了它。

在清单中设置screenOrientation,如下所示:

android:screenOrientation="sensor"

为我修好了。

答案 2 :(得分:0)

您的代码没问题 修改manifest.xml 机器人:configChanges = “方向| keyboardHidden” 我希望它可以帮到你