AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.CustomDialog);
View inflate = LayoutInflater.from(context).inflate(R.layout.layout_custom_dialog, null, false);
builder.setView(inflate);
AlertDialog dialog = builder.create();
dialog.show();
R.style.CustomDialog
<style name="CustomDialog" parent="Theme.AppCompat.Dialog">
<!-- dialog 宽度与屏幕比例-->
<item name="android:windowMinWidthMinor">80%</item>
<!-- dialog 背景颜色,默认是白色-->
<item name="android:colorBackground">@android:color/transparent</item>
</style>
R.layout.layout_custom_dialog
layout 根布局的宽高属性都不会生效,最终宽度会由Dialog的style中的android:windowMinWidthMinor属性决定,高度会表现为wrap_content,即使设置不是wrap_content
<?xml version="1.0" encoding="utf-8"?>
<!--layout 根布局的宽高属性都不会生效,最终宽度会由Dialog的style中的android:windowMinWidthMinor属性决定,高度会表现为wrap_content,即使设置不是wrap_content-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/shape_dialog_bg"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="48dp"
android:gravity="center_vertical"
android:text="Title" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal">
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Cancel" />
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Confirm" />
</LinearLayout>
</LinearLayout>