@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Fragment locked in portrait screen orientation
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
// Fragment locked in landscape screen orientation
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
// Fragment screen orientation normal both portait and landscape
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
7条答案
按热度按时间6jygbczu1#
在片段中使用以下代码行,其中需要特定的方向(在本例中为纵向)。
如果你想在片段中有一个方向,这是基于用户持有他的设备的方式,然后使用下面的代码行。
希望,这将给你给予预期的解决方案。
svmlkihl2#
在每个片段中,设置请求的方向。
参考文件:http://developer.android.com/reference/android/content/pm/ActivityInfo.html
r7knjye23#
Orientation属性是针对每个Activity的,因此您可以仅为包含片段的Activity声明方向,以便它处于横向中,其余Activity将保持原样。
vsikbqxv4#
所以我现在正在处理这个问题。我们只有肖像模式应用程序(目前)。但有一个片段需要在景观。我们使用的是单一活动方法,所以公认的答案对我没有帮助。
我能想到的最快的解决办法就是这个。
是否交换方向的信息保存在swappingOrientation变量中。在片段创建之初,它会改变方向,只有当没有保存状态时。并且仅当当前未改变方向时,方向才再次改变回来。
这是一个超级快速的解决方案,当你返回到前一个片段时,它会产生屏幕 Flink 。我也没有完全测试它,所以它可能有其他问题,所以请记住这一点。
vshtjzan5#
第一碎片:
第二段:
bpzcxfmw6#
这是一个老问题,但回答这个问题只是以防任何人想要的解决方案,因为OP需要。实现这一点的简单方法如下。
然后
extend
这个LandscapeFragment
从你的任何片段,你想在横向模式下启动它。hiz5n14c7#
好吧,在我几乎打爆我的头之后,这对我用喷气背包导航组件碎片有效
这是基本的片段类
我把这个放在任何我希望它被保存的片段中