简体   繁体   中英

android: Position AlertDialog.Builder below toolbar so that NavigationDrawer is clickable even when AlertDialog is showing

I have an AlertDialog.Builder but the problem is that when the AlertDialog.Builder is showing I am unable to click on the toolbar becase AlertDialog.Builder is drawn above all other views.. how do I make this AlertDialog.Builder not cancel able but still be able to click on toolbar items.

here is a snapshot for a better understanding 我希望能够在显示AlertDialog.Builder时单击购物车图标,wishist图标和导航抽屉。

HERE IS MY CODE:

final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
                                //Set title

                                builder.setTitle("Approval Pending")
                                        //Set message
                                        .setMessage("Your account with Reference Id [" + jObj0.getString("reference_id") + "] is in Pending state.")
                                        .setNegativeButton("REFRESH", new DialogInterface.OnClickListener() {
                                            public void onClick(DialogInterface dialog, int which) {
                                                if(Utils.isConnected(getContext())) {
                                                    dialog.dismiss();
                                                    fetchdashboardfragmentdata(true);
                                                }else{
                                                    builder.show();
                                                    Toast.makeText(getContext(), "Please turn on your Internet connection and try again", Toast.LENGTH_SHORT).show();
                                                }
                                            }
                                        })
                                        .setPositiveButton("LOGOUT", new DialogInterface.OnClickListener() {
                                            public void onClick(DialogInterface dialog, int which) {
                                                StoreSharePreference.SSP().logout(getContext());
                                                Intent intent = new Intent(getContext(), Login_Page.class);
                                                intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP | intent.FLAG_ACTIVITY_NEW_TASK | intent.FLAG_ACTIVITY_CLEAR_TASK);
                                                startActivity(intent);
                                                getActivity().finish();
                                            }
                                        })
                                        .setOnKeyListener(new DialogInterface.OnKeyListener() {
                                            @Override
                                            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                                                if (keyCode == KeyEvent.KEYCODE_BACK) {
                                                    Intent intent = new Intent(Intent.ACTION_MAIN);
                                                    intent.addCategory(Intent.CATEGORY_HOME);
                                                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                                    startActivity(intent);
                                                    return true;
                                                }
                                                return false;
                                            }
                                        })
                                        .setCancelable(false);
                                AlertDialog alert = builder.create();
alert.show();

--I want to be able to click on cart icon, wishist icon and navigation drawer when the AlertDialog.Builder is showing.--

you can't touch element behind an alert dialog, because dialog always overlaying your activity. you have to dismiss the dialog before touching the activity UI components.

you can do this by using

AlertDialog helpDialog = alert.create();

Window window = helpDialog.getWindow();

window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,

WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);

window.setFlags(WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
                        WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM