Сделайте фон позади 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);