如何显示全angularDialogFragment?

我正在尝试创build一个自定义的DialogFragment ,它扩展了我的屏幕的整个宽度(或者更确切地说,父级片段)。 虽然我可以使DialogFragment的边框透明,但是DialogFragment还有一个填充,我无法摆脱。

这是我的片段:

 public static class LoaderDialog extends DialogFragment { static LoaderDialog newInstance() { LoaderDialog f = new LoaderDialog(); return f; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.loader_f, container, false); WindowManager.LayoutParams p = getDialog().getWindow().getAttributes(); py = getSupportActionBar().getHeight(); getDialog().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); getDialog().getWindow().setGravity(Gravity.TOP); getDialog().getWindow().setAttributes(p); return view; } } 

这是一张图片,看起来如何: 截图

正如你所看到的,DialogFragment(红色的东西)有一些边缘。 我想要那些走了。 任何想法如何做到这一点(在Java中,如果可能的话)?

Solutions Collecting From Web of "如何显示全angularDialogFragment?"

您可以使用:

 WindowManager.LayoutParams wmlp = getDialog().getWindow().getAttributes(); wmlp.gravity = Gravity.FILL_HORIZONTAL; 

完整的例子:

 public class TextEditor extends DialogFragment { public TextEditor () { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_text_editor, container); WindowManager.LayoutParams wmlp = getDialog().getWindow().getAttributes(); wmlp.gravity = Gravity.FILL_HORIZONTAL; return view; } } 

尝试这个:

 p.horizontalMargin = 0; 

为DialogFragment使用此样式

 <item name="android:windowNoTitle">true</item> <item name="android:padding">0dp</item> 

或者在DialogFragment的onCreateView方法中使用此代码

  Display display = getActivity().getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, **220**, getResources().getDisplayMetrics()); getDialog().getWindow().setLayout(width,px); 

PS。 220是DialogFragment高度,可以随意更改

在您的style.xml文件中创build一个样式元素。 将下面的代码复制到你的style.xml文件中

 <style name="CustomDialog" parent="@android:style/Theme.Holo.Light" > <item name="android:windowBackground">@null</item> <item name="android:windowIsFloating">true</item> 

然后在DialogFragment类的createDialog方法中,

 dialog = new Dialog(getActivity(), R.style.CustomDialog); 

这是为我工作,并希望这也会帮助你

尝试使用LayoutParams.MATCH_PARENT来代替。 Fill_parent是drepecated。 此外,如果你已经为你的视图设置了一个填充,这个填充是正常的,而不是填充它的父视图。