创建具有透明背景的DialogFragment

时间:2014-10-08 17:02:24

标签: android android-fragments android-dialogfragment

我已经搜索了这个问题的答案,但没有一个答案对我有帮助。

问题是我有一个DialogFragment,当用户添加一个小部件时(作为WidgetConfig的一部分)显示。它看起来像这样:

enter image description here

对话框就像这样创建;

致电活动:

public class AppWidgetConfigure extends Activity {

    private void setUp(){

        //Config widget code removed 

        DialogFragment dialog = new ChooserDialog();
        dialog.show(getFragmentManager(), "dialog");
    }
}

DialogFragment:

public class ChooserDialog extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        choices = getResources().getStringArray(R.array.choices);
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());       
        builder.setTitle(getResources().getString(R.string.widget_dialog_chooser_title));
        builder.setPositiveButton(getResources().getString(R.string.widget_dialog_chooser_posBtn), this);
        builder.setNegativeButton(getResources().getString(R.string.widget_dialog_chooser_negBtn), this);   
        builder.setSingleChoiceItems(choices, -1, this);
        return builder.create();

    }
}

我希望对话框具有透明背景。目前,如图所示,WidgetConfigure活动为背景。

感谢任何帮助。

马库斯

1 个答案:

答案 0 :(得分:0)

使用以下代码,我们可以获得透明的AlertDialog

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),android.R.style.Theme_Translucent);

但在您的情况下,您可以在警告对话框中显示一些选项。在这种情况下,您需要创建一个带有透明背景的布局和选择列表,并将该布局设置为对话框。

类似这样的事情

View view = getActivity().getLayoutInflater().inflate(R.layout.dialog, null);
builder.setView(view);