I have a specific use case where I want a fragment to be locked in portrait mode, but still rotate the activity (and/or other fragments visible in the same activity). Is it poss
Its may be little late for the reply, but as i can see you haven't found a solution, You can try doing this, Whenever you are calling your fragment from your activity, add below code before it
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
and for all other/default Fragment
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
Hope i helped
Take a look at this answer:
Override setUserVisibleHint() in each fragment.
In the portrait only fragments:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser) {
Activity a = getActivity();
if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
in the the portrait/landscape fragment:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser) {
Activity a = getActivity();
if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
}
}
This will allow the whole activity to rotate in one fragment, but fix it to portrait in others.
Answered by: https://stackoverflow.com/a/13252788/2767703