在dialogfragment中删除白色背景

以下是我调用DialogFragment的方法:

DialogSelectAccount myDiag=new DialogSelectAccount(); myDiag.show(ft,"Diag" ); 

这是(部分)我的DialogFragment的创建方式:

 public class DialogSelectAccount extends DialogFragment { public DialogSelectAccount() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.dialog_select_account, container, false); tvMessage = (TextView) rootView.findViewById(R.id.tvMessage); btnAccountPublic = (Button) rootView.findViewById(R.id.btnAccountPublic); btnAccountEnterprise = (Button) rootView.findViewById(R.id.btnAccountEnterprise); tvMessage.setText(message); btnAccountPublic.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Login.setAccountType = 2; dismiss(); } }); btnAccountEnterprise.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Login.setAccountType = 1; dismiss(); } }); return rootView; } 

这是我的DialogSelectAccount的xml

      

问题是总是会显示一个令人生畏的白色背景,如下所示。 我该如何删除它?

在此处输入图像描述

DialogFragmentonCreateView()中,替换

 View rootView = inflater.inflate(R.layout.dialog_select_account, container, false); 

 View rootView = inflater.inflate(R.layout.dialog_select_account, container); 

另外,将此添加到onViewCreated()

 getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); setStyle(DialogFragment.STYLE_NO_FRAME, android.R.style.Theme); 

并在XML的最外层LinearLayout中进行更改

 android:layout_width="fill_parent" android:layout_height="fill_parent" 

 android:layout_height="wrap_content" android:layout_width="wrap_content" 

尝试这个。 这应该工作。

您可以为对话框创建样式:

  

并通过方法在代码中使用它:

 @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new Dialog(getActivity(), R.style.DialogStyle); } 

或者,您只能在代码中为对话框设置FEATURE_NO_TITLE ,如下面的代码所示:

 @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Dialog dialog = super.onCreateDialog(savedInstanceState); dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); return dialog; } 

在这里,我认为你试图隐藏标题栏。 用这个

 getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);