首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不锁定活动方向的情况下锁定片段方向?

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

Stack Overflow用户
提问于 2013-12-04 16:40:40
回答 2查看 12.3K关注 0票数 16

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

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

我的应用程序支持10+接口(如果有一个很好的使用11+接口的解决方案,我可能会考虑在API <11中删除对景观的支持)。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-12-04 17:09:42

看看这个答案:

覆盖每个片段中的setUserVisibleHint()。

在肖像中只有碎片:

代码语言:javascript
运行
复制
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if(isVisibleToUser) {
        Activity a = getActivity();
        if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
}

在纵向/横向片段中:

代码语言:javascript
运行
复制
@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

票数 11
EN

Stack Overflow用户

发布于 2016-02-14 02:09:41

现在回复可能有点晚了,但我可以看到你还没有找到解决方案,你可以试着这样做,每当你从你的活动中调用你的片段时,在它之前添加下面的代码

代码语言:javascript
运行
复制
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

对于所有其他/默认片段

代码语言:javascript
运行
复制
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

希望我能帮上忙

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20370636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档