Сделайте фон позади AlertDialog черным или непрозрачным без замены на Dialog

Можно ли сделать фон позади AlertDialog непрозрачным или черным без использования Dialog / CustomDialog, у меня в настоящее время есть это,

<item name="android:backgroundDimEnabled">true</item>

в моем стиле, который я назначаю конструктору AlertDialog. но это не достаточно темно, и пользователи все еще могут видеть информацию, которую я еще не хочу им. Честно говоря, причина, по которой я не хочу использовать Dialog, заключается в том, что у меня уже есть все, что работает с AlertDialog, и я подумал, что было бы неплохо проверить, знает ли кто-нибудь быстрый способ сделать это.

2 ответа

Решение
private void dimActivity(Dialog dialog, float dimAmount) {
    WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
    lp.dimAmount = dimAmount;
    dialog.getWindow().setAttributes(lp);
    dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
}

dimAmount: 0 - нет затемнения, 1.0f - полное затемнение. Вы можете проверить это: Как затемнить экран при нажатии кнопки в Android?

Используйте этот код, это может помочь вам

final Dialog dialog = new Dialog(context);
        Window window = dialog.getWindow();
        window.setFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND,
        WindowManager.LayoutParams.FLAG_DIM_BEHIND);
Другие вопросы по тегам