Android AlertDialog设置宽度显示不正常的问题

学而时习之温故而知新

礼拜天写一个dialog 出现了设置的宽度和布局写的宽度明现不一致问题,

出现了这种问题再代码中设置宽和高问题就解决了

一般写AlertDialog 2种方法,这里都 给出来 ,要注意设置的宽和高一定要再show 之后添加

 第一种写法

  AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
        builder.setCancelable(false);
        View cinema_view = getLayoutInflater().inflate(R.layout.cinema_fragment_pop, null);
        builder.setView(cinema_view);
        AlertDialog  cinemaDialog = builder.create();
        cinemaDialog.show();
        /**
         * 设置宽和高一定要再show 之后添加,不然没有效果
         */
        
        Window window = cinemaDialog.getWindow();
        if (window !=null){
            WindowManager.LayoutParams lp = window.getAttributes();
            window.setBackgroundDrawableResource(android.R.color.transparent);//设置背景透明
            lp.gravity = Gravity.CENTER;
            lp.width = mActivity.getResources().getDimensionPixelOffset(R.dimen.dp_1060);//宽高设置具体大小
            lp.height = mActivity.getResources().getDimensionPixelOffset(R.dimen.dp_630);
            cinemaDialog.getWindow().setAttributes(lp);
        }

设置之后没有问题不过window 非常环视要判断下

第二种写法

  View cinema_view = getLayoutInflater().inflate(R.layout.cinema_fragment_pop, null);
        AlertDialog dialog = new AlertDialog.Builder(mActivity).create();
        dialog.setView(cinema_view);
        dialog.show();
        /**
         * 设置宽和高一定要再show 之后添加,不然没有效果
         */
        Window window = dialog.getWindow();
        if (window != null) {
            window.setBackgroundDrawableResource(android.R.color.transparent);//设置背景透明
            WindowManager.LayoutParams lp = window.getAttributes();
            lp.gravity = Gravity.CENTER;
            lp.width = mActivity.getResources().getDimensionPixelOffset(R.dimen.dp_1060);//宽高可设置具体大小
            lp.height = mActivity.getResources().getDimensionPixelOffset(R.dimen.dp_630);
            dialog.getWindow().setAttributes(lp);

        }

 

你可能感兴趣的:(Android,知识点记录)