Android Dialog - Rounded Corners and Transparency

后端 未结 11 531
日久生厌
日久生厌 2020-12-09 16:12

I\'m trying to make a custom android dialog with rounded corners. My current attempts have given me this result.

\"

相关标签:
11条回答
  • 2020-12-09 16:32

    Use CardView and make

    app:cardCornerRadius="dp" According shape xml.

    0 讨论(0)
  • 2020-12-09 16:32

    I will post my solution here because it may be helpful. The solution that worked for me was to set the drawable resource in the layout xml and also in the activity that starts the dialog, without switching from AlertDialog to Dialog.

    This would mean that in the layout where we create our design for the dialog alert_dialog_design.xml we will have the property android:background filled with our own defined background alert_dialog_shape.xml:

    android:background="@drawable/alert_dialog_shape"
    

    But also inside the activity that starts the dialog:

    alert.getWindow().setBackgroundDrawableResource(R.drawable.alert_dialog_shape);
    

    This way the parent (the alert itself) of your custom layout will have the shape you desire. Using this method I achieved the following:

    https://i.stack.imgur.com/drCw3.png

    0 讨论(0)
  • 2020-12-09 16:33

    In you java file keep below code and change your layout name

    View mView =LayoutInflater.from(mContext).inflate(R.layout.layout_pob,null); 
    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    
    0 讨论(0)
  • 2020-12-09 16:33

    The below code solved the issue

    MyDialog mydialog = new MyDialog(this, "for testing",
                new myOnClickListener() {
    
                    @Override
                    public void onPositiveButtonClick() {
                        // TODO Auto-generated method stub
                        Toast.makeText(getApplicationContext(),
                                "I am positive button in the dialog",
                                Toast.LENGTH_LONG).show();
                    }
    
                    @Override
                    public void onNegativeButtonClick() {
                        // TODO Auto-generated method stub
                        Toast.makeText(getApplicationContext(),
                                "I am negative button in the dialog",
                                Toast.LENGTH_LONG).show();
                    }
                });
    
        // this will remove rectangle frame around the Dialog
        mydialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
        mydialog.show();
    

    Thanks, Nagendra

    0 讨论(0)
  • 2020-12-09 16:41

    just try using this, this worked for me

    dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
    
    0 讨论(0)
  • 2020-12-09 16:42

    I had similar issue when made dialog extending DialogFragment and to fix this used:

    dialog.setStyle(DialogFragment.STYLE_NO_FRAME, 0);
    

    Like this:

    public class ConfirmBDialog extends DialogFragment {
    
    public static ConfirmBDialog newInstance() {
        ConfirmBDialog dialog = new ConfirmBDialog();
        Bundle bundle = new Bundle();
        dialog.setArguments(bundle);
    
        return dialog;
    }
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // This removes black background below corners.
        setStyle(DialogFragment.STYLE_NO_FRAME, 0);
    }
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    
        View view = inflater.inflate(R.layout.confirm_dialog, container, true);
        getDialog().setCanceledOnTouchOutside(true);
        return view;
    }
    

    Hope this helps.

    0 讨论(0)
提交回复
热议问题