Android Dialog 全屏、Dialog 底部显示

完美全屏Dialog

    /**
     * 完美全屏Dialog
     */
    private void dialog() {
        final Dialog dlg = new Dialog(getContext()/*, R.style.Theme_AppCompat_Dialog*/);
        dlg.setCanceledOnTouchOutside(true);
        dlg.show();
        Window window = dlg.getWindow();
//        window.setWindowAnimations(R.style.Theme_AppCompat_Dialog);
        window.setContentView(R.layout.dialog_test);
        ((Window) window).setBackgroundDrawable(new BitmapDrawable());
        //设置alterdialog全屏
        WindowManager windowManager = getActivity().getWindowManager();
        Display display = windowManager.getDefaultDisplay();
        WindowManager.LayoutParams lp = dlg.getWindow().getAttributes();
        lp.height = (int)(display.getHeight()); //设置宽度
        lp.width = (int)(display.getWidth()); //设置宽度
        dlg.getWindow().setAttributes(lp);




    }

Dialog 在屏幕底部

    //Dialog 靠下
    private void dialogBottom() {
        final Dialog dlg = new Dialog(getContext()/*, R.style.Theme_AppCompat_Dialog*/);
        dlg.setCanceledOnTouchOutside(true);
        dlg.show();

        //必须要在show 之后设置全屏  才有效  具体为什么  需要看源码
        Window window = dlg.getWindow();
//        window.setWindowAnimations(R.style.Theme_AppCompat_Dialog);
        window.setContentView(R.layout.dialog_bottom_test);
        //一定要设置背景 不然会出现padding 等
        ((Window) window).setBackgroundDrawable(new ColorDrawable(0x00000000));
        //设置alterdialog全屏
        WindowManager windowManager = getActivity().getWindowManager();
        Display display = windowManager.getDefaultDisplay();
        WindowManager.LayoutParams lp = dlg.getWindow().getAttributes();
        lp.height = WindowManager.LayoutParams.MATCH_PARENT; //设置宽度
//        lp.width = (int)(display.getWidth()); //设置宽度
        lp.width = WindowManager.LayoutParams.MATCH_PARENT; //设置宽度
        lp.gravity = Gravity.BOTTOM;
        dlg.getWindow().setAttributes(lp);



        //Dialog 靠下
    }

AlertDialog 和 Dialog 有什么区别?

AlertDialg 一般用于下面有确定和取消按钮的场景,Dialog 用于没有确定和取消的按钮场景,比如加载中的进度条。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值