如何在普通片段中添加DialogFragment?

时间:2013-01-05 10:21:03

标签: android android-fragments android-dialogfragment

此来源显示DialogFragment已创建新Fragment并屏蔽了所有屏幕(FragmentActivity)。我需要在Dialog中添加Fragment,以便在我滚动屏幕时DialogFragment不会干扰。目前的代码:

FragmentManager fm = fa.getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
            // create dlg fragment
            DialogFragment fragment = new DialogFragment();
            // show the dialog.
            fragment.show(fm, "android:switcher:888889:1"); // "android:switcher:888889:1" - existing fragment!

enter image description here

1 个答案:

答案 0 :(得分:1)

  

我需要在“片段”中添加Dialog然后我可以滚动屏幕   和FragmentDialog不会干涉

普通DialogFragment(或普通Dialog)无法满足您的需求。你可以使用嵌套的Fragments。更准确地说,您需要从Fragment修改当前ViewPager的视图,以使用RelativeLayoutFrameLayout包装当前布局以及添加其他容器(内容之上的FrameLayout

顶部的额外FrameLayout将被用作Dialog持有者(因此Dialog将显示为浮动在普通内容之上)并且您将添加到此容器Fragment代表Dialog(正常Fragment,而不是DialogFragment)。然后,即使您的假ViewPager显示,您也可以轻扫Dialog

另外,请注意,虽然屏幕上显示的是ViewPager,但轻扫Dialog可能会对用户造成直观反对。