[Android学习]对话框在android6.0以上版本不显示按钮文字

来源:互联网 发布:在哪儿看淘宝哪些贷款 编辑:程序博客网 时间:2024/06/14 03:53

最近半个月又写点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






阅读全文
0 0
原创粉丝点击