2015-07-07 3 views
1

Я работаю над приложением, и я дошел до точки, где мне требуется отобразить окно меню в середине экрана.Изменение цвета по умолчанию для Android при выводе диалогов

Я использовал объект AlertDialog, заполненный пользовательским представлением, но теперь мне потребовалось «окружить» окно полупрозрачным белым свечением в отличие от серого цвета по умолчанию. Я сделал аналогичный с явным цветом некоторых ящиков навигации, которые у меня есть в своем приложении, но в этом случае у меня был конкретный метод, чтобы быстро помочь мне решить эту проблему. До сих пор я не нашел ничего, что помогло бы мне решить эту проблему.

Я попытался создать стиль по умолчанию с новым значением «windowBackground», но я столкнулся с 3 проблемы с самого начала не идут:

  • Я больше не в состоянии закрыть AlertDialog вниз, нажав вне макета (Я предполагаю, что, изменив цвет таким образом, все в настоящее время является макетом)
  • Окно меню теперь окружено черным контуром, которого там не было до
  • Используя поиск фильтрации внутри макета, который манипулирует членами списка, окно сворачивается на себя

Есть ли способ достичь того, что я хочу более или менее напрямую?

ответ

0

Я не совсем уверен в этом, но вы можете использовать это в вашем 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> 

в ваших стилях.xml

+0

Привет, спасибо за ответ. Несмотря на то, что ваш код был похож, я уже пробовал, я дал ему уйти, и мне удалось избавиться от уродливой черной контуры вокруг моего основного вида. Однако я все еще не могу отклонить представление, щелкнув его, поэтому я утверждаю свою теорию о том, что определение фона окна делает вид занимающим весь экран. – rtnf

+0

Это действительно странно. Я не знаю, как решить вашу проблему. См. [Здесь] (http://stackoverflow.com/questions/8384067/how-to-dismiss-the-dialog-with-click-on-outside-of-the-dialog) и попробуйте, если он будет работать. Также см. [This] (http://stackoverflow.com/questions/7214365/tap-outside-android-dialog-to-dismiss-it), [это] (http://stackoverflow.com/questions/12102777/prevent -android-activity-dialog-from-clos-on-outside-touch) и [this] (http://stackoverflow.com/questions/9516287/android-click-event-outside-a-dialog) – javmarina

+0

Спасибо за рекомендации. Если кто-то из них решит мою проблему, я укажу здесь. – rtnf

Смежные вопросы