社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
最近半个月又写点android了(时隔2年半)
事情是这样的.用Weex做的App 的对话框在某些手机上对话框能显示按钮,有些不能显示
如图
锁定问题
1)是否修改过对话框Native的对话框代码?是否修改过对话框调用Weex的JS代码?
2)哪些手机能再现?哪些不能?
3)能再现该问题的手机 Weex的Playground的代码是否正常运行?该正常运行代码能否在自己工程里面正常运行?
锁定结果
1)没有修改过Native的对话框代码也没有修改过Weex的JS代码,
2)android版本6.0以上的手机再现,6.0以下的手机可以正常显示
3)6.0以上的WeexPlayground代码能正常运行.在自己工程里面不能正常运行.
调查路线
1)调查对话框在6.0以上有什么变化?
2)自己工程依赖的控件包是否是指定的正常的包?
2)查看控件的布局边界该按钮是否存在。
调查结果
1)5.0以上android的增加了权限询问,很多文档上说需要设置这两权限。
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
对这两个权限抱有疑问,文档上面说的是:只有该对话框是处于所有App顶层的时候才需要,一般App不需要。
删除这两个权限设置后发现也是可以运行的。
android权限说明请参考: 链接
2)自己工程包的依赖的对话框的包是正常的,有些博客上说自己依赖的包版本不是5.0以上,导致对话框文字不能显示。
查看自己的包依赖如下:android.support.v7.app.AlertDialog
3)打开设置-开发者选项-布局边界,Alert的控件的边界是存在的,按下按钮颜色是灰色以及文字都可以显示出来。
调查关键位置:
既然控件在,按下的颜色也有,则说明只是按钮的文字的颜色问题。
如果对话框没有设置自己的主题颜色,则采用的是AppTheme
在Styles.xml中设置Style。也可以直接使用AppTheme
结果在Color.xml的数值里面 colorAccent为FFFFFF的原因,导致按钮颜色看不见。
修改colorAccent的值为主体颜色后对话框显示正常。
扩展:
增加自己的Style:
https://isming.me/2015/08/31/modify-alert-style/
以及AppTheme中的各个变量对应的内容
http://www.aoaoyi.com/archives/623.html
参考页面:
http://blog.csdn.net/s1991721/article/details/76054028
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!