Changing default Android fade/scrim color when calling a Dialog

纵饮孤独 提交于 2019-12-11 13:36:59

问题


I've been working on an app and I've reaching the point where it requires me to display a menu window in the middle of the screen.

I've been using an AlertDialog object filled with a custom View but now it was required of me to "surround" the window with a semi-transparent white glow as opposed to the default grayish one. I did a similar with the fade-in color of some navigation drawers I have on my app but in that case I had a specific method to quickly help me solve that problem. So far I haven't found anything that helps me solve this one.

I tried creating a default style with a new "windowBackground" value but I encountered 3 problems from the get-go:

  • I'm no longer able to shut the AlertDialog down by clicking outside the layout (I'm guessing because by changing the color that way everything is now the layout)
  • The menu window is now surrounded by a black outline that wasn't there before
  • By using the filtering search inside the layout, which manipulates the members of a list, the window collapses on itself

Is there any way to accomplish what I want more or less directly?


回答1:


I'm not really sure about it, but you can use this in your 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>

And if you want to dismiss the dialog when clicking outside, use this:

dialog.setCanceledOnTouchOutside(true);

or

<item name="windowCloseOnTouchOutside">true</item>

in your styles.xml



来源:https://stackoverflow.com/questions/31266464/changing-default-android-fade-scrim-color-when-calling-a-dialog

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!