Android Orientation Change

后端 未结 4 1660
走了就别回头了
走了就别回头了 2021-01-01 02:27

My tabbed app does not redisplay the view with an orientation change.

I added

android:configChanges=\"keyboardHidden|orientation\"

相关标签:
4条回答
  • 2021-01-01 02:47

    With success I found that the best way to have screen changes with most control is to make your layout xml for landscape mode in a seperate xml like so:

    res/layout-land/youractivity.xml
    

    using /layout/ and /layout-land/ for your layouts as well as Graham Borland answer is golden.

      <activity android:name=".MainActivity"
                      android:label="@string/app_name"
                      android:screenOrientation="unspecified"
                      android:launchMode="standard"
                      android:configChanges="orientation|keyboardHidden"
                      >
    

    the above snippet is what made mine work. :)

    ohh I do believe the "unspecified" is what allows the system to do what it thinks is best...

    Good luck!

    0 讨论(0)
  • 2021-01-01 02:47

    Could it just be that your layout doesn't work in the landscape/portrait mode? Try starting you app after rotating, check if that gives the same results. If so: fix your layout :D

    0 讨论(0)
  • 2021-01-01 02:51

    I had exactly this problem. After much trial and error, I eventually solved it by making a one-line change to the manifest.

    The trick is to add

    android:configChanges="orientation|keyboardHidden"
    

    to your TabActivity's entry in the manifest. Leave all the child activities alone. Don't even bother implementing onConfigurationChanged(), not even in the TabActivity.

    I don't know how or why this seems to work, but the effect is the layout is refreshed, and both the tabs and the child activity content are redrawn correctly in the new orientation.

    0 讨论(0)
  • 2021-01-01 03:00

    In Mono for Android with a target API greater then 13 I found that the line which would go inside the namespace but outside the Activity class:

    [Activity (Label = "Viewer",  ConfigurationChanges = ConfigChanges.Orientation|ConfigChanges.ScreenSize)]
    

    lead to the triggering of OnConfigurationChanged() even though changing the manifest had not.

    0 讨论(0)
提交回复
热议问题