My app has a single Activity with a FragmentPagerAdapter with four fragments (Using the ViewPagerIndicator library). One of these fragments has designs for both a separate portrait and landscape layout, the other three do not and need to be fixed to portrait orientation.
My thought was to set android:configChanges="orientation"
in the manifest and call getActivity().setRequestedScreenOrientation()
in the onResume()
of all the fragments, locking to SCREEN_ORIENTATION_PORTRAIT
in three of them but to SCREEN_ORIENTATION_UNSPECIFIED
in the one that needs to allow rotation, but this doesn't work. The app remains in portrait mode.
Is there a way to achieve this?
It isn't actually necessary for the actual activity to rotate if there is anyway to allow a fragment to change orientation without its activity doing so, but I have not found anything mentioning this being possible. It would also be equally ok if the activity rotates since the tab bar will be hidden when in landscape orientation.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…