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全屏,还要将dialog的style这样改回原来的 -->
<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>