在纵向模式下将Android DialogFragment显示为对话框,并在横向模式下显示为活动的一部分

时间:2012-04-18 14:32:34

标签: android fragment

是否可以实现某种“自我管理”的DialogFragment,它在纵向模式下显示其像Dialog,并且在横向模式下显示为活动的一部分。如果你向我提供一些代码

,那将非常有意义

1 个答案:

答案 0 :(得分:0)

这样的事情:

Activity activity = getActivity();
int orientation = activity.getResources().getConfiguration().orientation;

if (orientation == Configuration.ORIENTATION_LANDSCAPE)
{
    // Start DialogFragment as dialog
    MyFragmentDialog frag = new MyFragmentDialog();
    frag.show(getFragmentManager(), "dialog");
}
else
{
    // Start activity that embeds DialogFragment
    Intent intent = new SimpleFragmentActivity.IntentBuilder(activity, MyFragmentDialog.class)
            .create();
    activity.startActivity(intent);
}

SimpleFragmentActivity是我写的一个包装器活动,它只是为了方便而将片段对话框嵌入到一个活动中,但基本上你只需要一个在其中嵌入MyFragmentDialog的活动。以下是包装器活动的来源:https://github.com/jt-gilkeson/fragment-utils