在实现AlertDialog 弹窗提示用户某些操作时,按钮的文字始终看不见,但是点击那个位置能够正确的触发点击事件,这个坑害我花了不少时间,问过不少人都遇到过同样的问题,所以特此做下记录,方便自己大家能够快速的跳坑。经过反复排查原来是系统强制把字体的颜色改成了白色,使字体颜色和背景色一致就造就了我们看到的效果,看不见,但是点击那个位置却能够正常触发点击事件。
找到了问题原因后,解决就简单了,解决方案就是修改一下字体的颜色就可以了。
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setMessage(getString(R.string.exit_notice))
.setPositiveButton(R.string.confirm, (dialog, which) -> {
finishSelf();
ActivityManager.getInstence().exitApplication();
})
.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss())
.create();
alertDialog.show();
alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(getResources().getColor(R.color.background_title));
alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextSize(16);
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.background_title));
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextSize(16);