我有一个特定的用例,我想要一个片段被锁定在纵向模式,但仍然旋转活动(和/或其他片段在同一活动中可见).有可能吗?
锁定片段方向的所有解决方案都建议使用setRequestedOrientation并锁定活动方向,但是我需要其他可见的片段来旋转.
我的应用程序支持API 10(如果有一个很好的解决方案使用API 11,我可能会考虑删除API< 11)中的风景支持. 提前致谢.
解决方法
看看这个答案:
覆盖每个片段中的setUserVisibleHint().
在画像只有片段:
@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(isVisibleToUser) { Activity a = getActivity(); if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } }
在肖像/风景片段:
@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(isVisibleToUser) { Activity a = getActivity(); if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR); } }
这将允许整个活动以一个片段旋转,但将其修改为在其他片段中的纵向.