3

我已经创建了示例程序来测试方向。如果纵向模式并且我以相反的方式倾斜手机,我希望我的示例应用程序反转纵向。在阅读了很多关于此的问题后 - 认为我们需要使用:

   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");

    }
}

清单.xml

android:configChanges="orientation" 

甚至尝试过这个

android:configChanges="orientation|screensize"

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

没有把握。这里有什么问题?

我正在使用最低 api 8 来定位 Api 18。

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

谢谢!

4

3 回答 3

4

I had a same issue after changing target API to 19(4.4 kitkat) You need to add layoutDirection attribute for targeting higher than version 17.

my attribute looks like:

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

The key is to add 'layoutDirection'

于 2013-11-06T18:13:28.527 回答
2

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

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

android:screenOrientation="sensor"

那为我修好了。

于 2015-01-20T16:05:11.970 回答
0

你的代码没问题修改你的manifest.xml android:configChanges="orientation|keyboardHidden" 希望对你有帮助

于 2013-07-31T02:40:23.877 回答