在将此问题标记为重复之前,我想指出我有一个我正在经历的奇怪要求。我的应用程序受手机和平板电脑支持,但只能通过平板电脑而不是手机支持。我限制它只适用于平板电脑。但现在,我有一个奇怪的问题,我需要在手机中的一个片段中启用方向。在我的情况下说x模块中的xfragment。如何在不删除不支持方向的手机限制的情况下解决这个问题。还有其他方法吗? 目前在我的片段工具中我正在这样做:
public static void setActivityOrientation(Activity activity){
boolean tabletSize = MyUtils.isTablet(activity);
if (tabletSize) {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
} else {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
并在基础活动中将其命名为oncreate:
FragmentUtils.setActivityOrientation(this);
如何使其仅适用于该特定片段?有任何想法吗?谢谢!
答案 0 :(得分:0)
如果xfragment占用整个屏幕,你可以在xfragment的正确生命周期中使用上面相同的代码
public class XFragment extends android.support.v4.app.Fragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!MyUtils.isTablet(getActivity())){
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
}
}
@Override
public void onPause() {
super.onPause();
if(!MyUtils.isTablet(getActivity())){
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
}
案例2:
如果XFragment没有全屏并且你有多个片段,那么唯一的方法就是调用detach并手动附加XFragment。