我试图在风景上呈现肖像,但我的基础活动锁定在肖像上(android:screenOrientation=“DialogFragment”)。在创建对话框时,我通过这样做来实现对话框旋转。但是,当它显示时,容器似乎是旧格式(旋转之前的宽度和高度),旋转后的对话框不适合其中。此外,容器还剪切对话框的内容。
public class MenuFragment extends DialogFragment {
private final int mOrientation;
public PlantsMenuFragment(int orientation) {
mOrientation = orientation;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View mRootView = inflater.inflate(R.layout.fragment_plants_menu,
container, false);
if (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE == mOrientation) {
mRootView.setRotation(90);
}
return mRootView;
}
}
我已经尝试在布局xml中设置它,但结果是相同的。我该如何修复它?或者有一种更好的方式来以不同的活动方向呈现对话框?先谢谢你,
发布于 2015-05-05 03:41:59
覆盖每个片段中的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);
}
}
这将允许整个活动在一个片段中旋转,但在其他片段中固定为肖像。
https://stackoverflow.com/questions/30043406
复制相似问题