Android 牛轧糖7中的DialogFragment在全屏中有奇怪的行为

Android 牛轧糖7中的DialogFragment在全屏中有奇怪的行为,android,dialog,android-dialogfragment,android-7.0-nougat,android-7.1-nougat,Android,Dialog,Android Dialogfragment,Android 7.0 Nougat,Android 7.1 Nougat,我有一个全屏对话框。在我用新的安卓牛轧糖(7)版本测试我的应用程序之前,一切都很顺利。突然我注意到屏幕的顶部和底部出现了奇怪的边距 父布局是ConstraintLayout,但即使我尝试将其更改为LinearLayout或RelativeLayout,也没有任何结果 我有以下代码行: getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); getDialog().getWindow().addFlags(WindowManager

我有一个全屏对话框。在我用新的安卓牛轧糖(7)版本测试我的应用程序之前,一切都很顺利。突然我注意到屏幕的顶部和底部出现了奇怪的边距

父布局是ConstraintLayout,但即使我尝试将其更改为LinearLayout或RelativeLayout,也没有任何结果

我有以下代码行:

getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);  
getDialog().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getDialog().getWindow().setLayout(getScreenWidth(), getScreenHeight());
这是截图:


有什么想法吗?

我对这个问题的解决方案是将“DialogFragment”添加为“Fragment”,而不是dialog

我删除了:

 dialog.show(fm, MyDialog.class.getSimpleName());
并添加了以下代码:

        FragmentTransaction transaction = iFm.beginTransaction();
        transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
        ViewGroup root = (ViewGroup) iActivity.findViewById(android.R.id.content).getRootView();
        FrameLayout child = new FrameLayout(iActivity);
        child.setLayoutParams(new ViewGroup.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
        child.setId(R.id.dialog_container);
        root.addView(child);
        transaction.add(child.getId(), iDialog).addToBackStack(iDialog.getClass().getSimpleName()).commit();
我将DialogFragment添加到所有类似dialog的内容之上,但使用的是简单的片段事务。
这是我唯一能想到的解决办法,而且它至今运行良好,就像charm:)

我解决这个问题的方法是将“DialogFragment”添加为“Fragment”,而不是dialog

我删除了:

 dialog.show(fm, MyDialog.class.getSimpleName());
并添加了以下代码:

        FragmentTransaction transaction = iFm.beginTransaction();
        transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
        ViewGroup root = (ViewGroup) iActivity.findViewById(android.R.id.content).getRootView();
        FrameLayout child = new FrameLayout(iActivity);
        child.setLayoutParams(new ViewGroup.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
        child.setId(R.id.dialog_container);
        root.addView(child);
        transaction.add(child.getId(), iDialog).addToBackStack(iDialog.getClass().getSimpleName()).commit();
我将DialogFragment添加到所有类似dialog的内容之上,但使用的是简单的片段事务。
这是我能想到的唯一的解决办法,而且它到目前为止效果很好,就像charm:)

你好,早上好,我面临着类似的问题。你能告诉我你申请了什么样的修复程序来让它工作吗?谢谢你,很抱歉耽搁了,但我还是会为大家发帖的。你好,妈妈,我也面临着类似的问题。你能告诉我你申请了什么样的修复程序来让它工作吗?谢谢你,很抱歉耽搁了,不过我还是会为大家发帖的。。