如何在不锁定活动方向的情况下锁定片段方向?

2024-03-23

我有一个特定的用例,我希望将片段锁定在纵向模式下,但仍然旋转活动(和/或同一活动中可见的其他片段)。可以这样做吗?

所有锁定片段方向的解决方案都建议使用 setRequestedOrientation 并锁定活动方向,但我需要其他可见片段进行旋转。

我的应用程序支持 API 10+(如果有一个使用 API 11+ 的好解决方案,我可能会考虑删除 API

提前致谢。


看看这个答案:

重写每个片段中的 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);
    }
}

这将允许整个活动在一个片段中旋转,但在其他片段中将其固定为纵向。

回答者:https://stackoverflow.com/a/13252788/2767703 https://stackoverflow.com/a/13252788/2767703

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不锁定活动方向的情况下锁定片段方向? 的相关文章

随机推荐