2014-10-08 90 views
0

我已经搜索了这个问题的答案,但没有答案帮助我。用透明背景创建一个DialogFragment

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

​​

该对话框像这样创建的;

调用活动:

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活动作为背景。

感谢您的帮助。

马库斯

+0

Sanghyun卞回答了这个问题非常充分这里:http://stackoverflow.com/questions/8045556/cant-make-the-custom-dialogfragment-transparent-over-the-片段 虽然最好把代码放在onCreateView – user2288580 2015-07-29 08:41:55

回答

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); 
+0

谢谢你的努力,明天我会试试这个 – Marcus 2014-10-08 18:23:35