Kat*_*thy 12 android android-layout android-fragments android-orientation android-activity
我有一个特定的用例,我希望片段以纵向模式锁定,但仍然可以旋转活动(和/或在同一活动中可见的其他片段).有可能吗?
锁定片段方向的所有解决方案建议使用setRequestedOrientation并锁定活动方向,但我需要其他可见片段进行旋转.
我的应用程序支持API 10+(如果有一个使用API 11+的不错的解决方案,我可能会考虑在API <11中删除对landscape的支持).
提前致谢.
Kev*_*rlo 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);
}
}
Run Code Online (Sandbox Code Playgroud)
在肖像/风景片段中:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser) {
Activity a = getActivity();
if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
}
}
Run Code Online (Sandbox Code Playgroud)
这将允许整个活动在一个片段中旋转,但在其他片段中将其固定为纵向.
回答者:https: //stackoverflow.com/a/13252788/2767703
回复可能有点晚了,但我可以看到您还没有找到解决方案,您可以尝试这样做,每当您从您的活动中调用您的片段时,请在它之前添加以下代码
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
Run Code Online (Sandbox Code Playgroud)
以及所有其他/默认片段
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
Run Code Online (Sandbox Code Playgroud)
希望我有所帮助
| 归档时间: |
|
| 查看次数: |
9476 次 |
| 最近记录: |