public class DialogHelper {
/**
* 编辑删除
*/
public static void showEditDeleteDialog(Context context, OnConfirmCancelNoResultListener listener) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
AlertDialog dialog = builder.create();
View view = LayoutInflater.from(context).inflate(R.layout.widget_dialog_edit_delete, null, false);
dialog.setView(view);
view.findViewById(R.id.tv_cancel).setOnClickListener(view1 -> dialog.dismiss());
view.findViewById(R.id.tv_edit).setOnClickListener(view1 -> {
if (listener != null) {
listener.onResult(1);
dialog.dismiss();
}
});
view.findViewById(R.id.tv_delete).setOnClickListener(view1 -> {
if (listener != null) {
listener.onResult(2);
dialog.dismiss();
}
});
dialog.show();
setBgBottom(context, dialog);
}
public static void setBg(Context context, AlertDialog dialog) {
Window window = dialog.getWindow();
if (window != null) {
window.setBackgroundDrawable(new ColorDrawable(0));
WindowManager.LayoutParams params = window.getAttributes();
params.width = (int) (Utils.getScreenWidth(context) * 0.8);
dialog.getWindow().setAttributes(params);
}
}
public static void setBg(Context context, AlertDialog dialog, boolean isSquare) {
Window window = dialog.getWindow();
if (window != null) {
window.setBackgroundDrawable(new ColorDrawable(0));
WindowManager.LayoutParams params = window.getAttributes();
params.width = (int) (Utils.getScreenWidth(context) * 0.8);
if (isSquare) {
params.height = (int) (Utils.getScreenWidth(context) * 0.8);
}
dialog.getWindow().setAttributes(params);
}
}
private static void setBgBottom(Context context, AlertDialog dialog) {
Window window = dialog.getWindow();
if (window != null) {
window.setGravity(Gravity.BOTTOM);
window.setBackgroundDrawable(new ColorDrawable(0));
WindowManager.LayoutParams params = window.getAttributes();
params.width = (int) (Utils.getScreenWidth(context) * 0.94);
dialog.getWindow().setAttributes(params);
}
}
public static void setBgBottom(Context context, AlertDialog dialog, double widthPercentage) {
Window window = dialog.getWindow();
if (window != null) {
window.setGravity(Gravity.BOTTOM);
window.setBackgroundDrawable(new ColorDrawable(0));
WindowManager.LayoutParams params = window.getAttributes();
params.width = (int) (Utils.getScreenWidth(context) * widthPercentage);
dialog.getWindow().setAttributes(params);
}
}
}
xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_white_angle10"
android:orientation="vertical">
<TextView
android:id="@+id/tv_edit"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="编辑"
android:textColor="@color/color_666"
android:textSize="14sp" />
<include layout="@layout/layout_line" />
<TextView
android:id="@+id/tv_delete"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="删除"
android:textColor="@color/color_666"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_cancel"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@drawable/shape_white_angle10"
android:gravity="center"
android:text="取消"
android:textColor="@color/color_666"
android:textSize="14sp" />
</LinearLayout>