Изменение цвета Android по умолчанию исчезать / холст при вызове диалога
Я работал над приложением и дошел до того, что оно требует от меня отображения окна меню в середине экрана.
Я использовал объект AlertDialog, заполненный пользовательским представлением, но теперь мне потребовалось "окружить" окно полупрозрачным белым свечением, а не сероватым по умолчанию. Я сделал то же самое с зацветанием некоторых навигационных ящиков в моем приложении, но в этом случае у меня был особый метод, чтобы быстро помочь мне решить эту проблему. Пока что я не нашел ничего, что помогло бы мне решить эту проблему.
Я попытался создать стиль по умолчанию с новым значением "windowBackground", но я столкнулся с 3 проблемами с самого начала:
- Я больше не могу отключить AlertDialog, щелкнув за пределами макета (я предполагаю, потому что, изменяя цвет таким образом, все теперь является макетом)
- Окно меню теперь окружено черным контуром, которого раньше не было
- Используя фильтрующий поиск внутри макета, который манипулирует членами списка, окно сворачивается само по себе.
Есть ли способ выполнить то, что я хочу более или менее напрямую?
1 ответ
Я не совсем уверен в этом, но вы можете использовать это в вашем styles.xml
<style name="MyDialogTheme" parent="android:Theme.AppCompat.Light.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/your_light_color</item>
<item name="android:backgroundDimEnabled">false</item>
И если вы хотите закрыть диалоговое окно при нажатии снаружи, используйте это:
dialog.setCanceledOnTouchOutside(true);
или же
<item name="windowCloseOnTouchOutside">true</item>
в вашем styles.xml