在我的应用程序中,除了需要以纵向模式显示的片段外,我有很多可以以纵向和横向模式显示的片段。
现在,一切正常,除了一种情况:如果手机处于横向模式,并且我想显示配置为纵向的片段,那么屏幕将变为空白,并且在我改变方向之前什么也没有出现。
即使手机处于“横向”位置,也可以用纵向方式显示我的活动。
这就是我将片段仅在显示时设置为纵向的方式,并在更改为其他片段时恢复为原始配置。
@Override
public void onResume() {
super.onResume();
Log.i(TAG, "resume");
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
@Override
public void onPause() {
super.onPause();
Log.i(TAG, "onpause");
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
Ps所有片段都在同一活动中。
感谢您提供的所有答案,无论如何,我找到了另一种解决方案,只需更改一行即可。
显然,仅当我尝试从肖像中想要的片段内部改变方向时,问题才会发生(屏幕变黑)
但是,如果我更改设置方向,则从调用方片段中将其正确更改。
所以我所做的是:
在MainMenu片段中,在调用Portrait Fragment模式之前,我更改了方向:
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
(显然,在另一个片段中,当调用onPause时,我还原为ActivityInfo.SCREEN_ORIENTATION_SENSOR)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句