我有一个特定的用例,我希望在纵向模式下锁定片段,但仍然旋转活动(和/或在同一活动中可见的其他片段)。这样做有可能吗?
锁定片段方向的所有解决方案都建议使用setRequestedOrientation并锁定活动方向,但我需要其他可见的片段进行旋转。
我的应用程序支持10+接口(如果有一个很好的使用11+接口的解决方案,我可能会考虑在API <11中删除对景观的支持)。
提前谢谢。
发布于 2013-12-04 17:09:42
看看这个答案:
覆盖每个片段中的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);
}
}
这将允许整个活动在一个片段中旋转,但在其他片段中固定为肖像。
发布于 2016-02-14 02:09:41
现在回复可能有点晚了,但我可以看到你还没有找到解决方案,你可以试着这样做,每当你从你的活动中调用你的片段时,在它之前添加下面的代码
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
对于所有其他/默认片段
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
希望我能帮上忙
https://stackoverflow.com/questions/20370636
复制相似问题