创建AlertDialog

本文介绍如何使用LayoutInflater和AlertDialog创建一个可以全屏显示的对话框,并设置了点击控件外部关闭dialog的功能,同时提供了调整dialog样式使其全屏显示的方法。
 LayoutInflater factory = LayoutInflater.from(Activity.this);
                            View myView = factory.inflate(R.layout.lialog,null);
                            final LinearLayout linearLayout = myView.findViewById(R.id.lilayout);
                            myView.setPadding(10, 0, 10, 0);
                            final AlertDialog dialog = new AlertDialog.Builder(Activity.this, R.style.Dialog_FS)
                                    .setView(myView).create();
                            dialog.setCanceledOnTouchOutside(true);
                            dialog.show();
                            Window window = dialog.getWindow();
                            window.setGravity(Gravity.CENTER_VERTICAL);
//                            获取当前手机屏幕尺寸
                            DisplayMetrics dm = getResources().getDisplayMetrics();
                            WindowManager.LayoutParams p = dialog.getWindow().getAttributes(); //获取对话框当前的参数值
                            p.width = dm.widthPixels;
                        p.height = dm.heightPixels;
                        dialog.getWindow().setAttributes(p); //设置生效
                            linearLayout.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    //点击控件外部,关闭dialog
                                    dialog.dismiss();
                                }
                            });

<!--以上设置并不能使dialog全屏,还要将dialogstyle这样改回原来的  -->
<style name="Dialog_FS">
    <!--<item name="android:windowBackground">@android:color/transparent</item>-->
    <item name="android:windowFrame">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:backgroundDimEnabled">true</item>
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值