本来简简单单的弹个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就可以了,也不赘述;
最后再鄙视一把三星,按钮颜色弄成纯白坑爹呢!