三星手机Dialog不显示按钮的坑

来源:互联网 发布:windows下修复grub 编辑:程序博客网 时间:2024/04/30 23:10

本来简简单单的弹个Dialog出来,代码都不好意思粘出来

AlertDialog.Builder builder = new AlertDialog.Builder(this,R.style.buttonDialog)                        .setTitle(R.string.not_wifi)                        .setNegativeButton(R.string.video_cancel, new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                            }                        })                        .setPositiveButton(R.string.video_continue, new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                play();                            }                        });                notWifiDialog = builder.create();

结果一运行:
这里写图片描述
这什么鬼啊????关键是在按钮区域单击还能够响应,但是文字呢????
检查代码没问题啊!查找资料builder的创建时序也是对的啊!可按钮就是不出来。

去开发者模式开启“显示布局边界”一看,艹坑爹呢吧
这里写图片描述

可以看出按钮的边界确实存在但是文字并没有显示,我创建的Dialog没指定style使用的是系统啊!然后怀疑是否其他人改了某属性,翻遍了项目没有发现证据支持。改而怀疑手机系统的弹框属性,证据在这:
这里写图片描述

这个弹框是MediaController因加载视频失败而弹出的系统框,它也没有显示按钮。
知道了原因就好办了,改style呗,创建Dialog时指定style就OK了;
至于怎么改自己去找吧!这方面的资料挺多的

<style name="buttonDialog"        parent="@style/Theme.AppCompat.Light.Dialog.Alert">        <item name="colorAccent">#000000</item>    </style>

这里写图片描述

至于系统弹框按钮不显示,直接修改AppTheme修改全局的dialog就可以了,也不赘述;
最后再鄙视一把三星,按钮颜色弄成纯白坑爹呢!

原创粉丝点击