设置AlertDialog全屏的方法

<!--首先在style里写属性-->
< style name= "dialog" parent= "@android:style/Theme.Dialog" >
<!-- 有无边框 -->
< item name= "android:windowFrame" >@null</ item >
<!-- 是否浮现在activity之上 -->
< item name= "android:windowIsFloating" >true</ item >
<!-- 是否透明 -->
< item name= "android:windowIsTranslucent" >true</ item >
<!-- 背景透明 -->
< item name= "android:windowBackground" >@color/white</ item >
<!-- 模糊 -->
< item name= "android:backgroundDimEnabled" >true</ item >
<!--无标题 -->
< item name= "android:windowNoTitle" >true</ item >
</ style >




//然后建一个Dialog继承AlertDialog,重写第一个方法,在手写show方法
public class MDialog extends AlertDialog {
public MDialog( @NonNull Context context) {
super (context, guoyinghan.sslj.R.style. dialog );
}

@Override
public void show() {
super .show();

/**
* 设置宽度全屏,要设置在show的后面
*/
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams. gravity = Gravity. BOTTOM ;
layoutParams. width = ViewGroup.LayoutParams. MATCH_PARENT ;
layoutParams. height = ViewGroup.LayoutParams. WRAP_CONTENT ;

getWindow().getDecorView().setPadding( 0 , 0 , 0 , 0 );

getWindow().setAttributes(layoutParams);

}
}


//实列化建好的类
final MDialog dialog = new MDialog(Details_qx. this );
//可以设置自己的布局
View inflate = View. inflate (Details_qx. this , R.layout. fengxiang , null );
dialog.setView(inflate);
Window window = dialog.getWindow();
window.setGravity(Gravity. BOTTOM ); //此处可以设置dialog显示的位置
dialog.show();
//关闭的方法
//dialog. cancel ();

猜你喜欢

转载自blog.csdn.net/qq_40983361/article/details/80987758