3

I have create sample program to test Orientation. If portrait mode and I tilt the phone the other way round I want my sample app to reversePortrait. After reading lot of questions on this - Figured we need to need use:

   onConfigurationChanged(Configuration newConfig) 

I was trying out the following:

    @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" 

tried even this

android:configChanges="orientation|screensize"

Strange I am not getting logs inside OnConfigurationChange method.

Not sure. What is the problem here?

I am using minimum api 8 to target Api 18.

Can somebody help me out with this?

Thanks!

TheDevMan
  • 5,914
  • 12
  • 74
  • 144

3 Answers3

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'

jclova
  • 5,466
  • 16
  • 52
  • 78
2

I just encountered this problem, and fixed it with this weird little trick.

Set your screenOrientation in your manifest, like so:

android:screenOrientation="sensor"

That fixed it for me.

eoinzy
  • 2,152
  • 4
  • 36
  • 67
0

Your code is no problem Modify your manifest.xml android:configChanges="orientation|keyboardHidden" I hope it can help you

  • The manifest change you are asking me to put is accepted for Api more that 12. I am currently targeting Api 8 and more – TheDevMan Aug 01 '13 at 03:57