Closed yuzhiqiang1993 closed 6 years ago
我哪里改样式了?改不改不都是你们自己设置么
private static void show(final CharSequence text, final int duration) { HANDLER.post(new Runnable() { @Override public void run() { cancel(); sToast = Toast.makeText(Utils.getApp(), text, duration); // solve the font of toast // TextView tvMessage = sToast.getView().findViewById(android.R.id.message); // TextViewCompat.setTextAppearance(tvMessage, android.R.style.TextAppearance); // tvMessage.setTextColor(msgColor); sToast.setGravity(gravity, xOffset, yOffset); // setBg(tvMessage); sToast.show(); } }); }
show方法注释的这个地方好像是改了
if (msgColor != COLOR_DEFAULT) {
tvMessage.setTextColor(msgColor);
}
不知道啥时候去除了这个判断 加上了已经 下版本会更新
好的 麻烦了
默认是颜色是 fffffff,我的默认是feffffff,差了一个透明度,你的机器是自己修改过的 rom? 把默认颜色改了吗?上传个图让我看看默认的和 ToastUtils 的区别,代码我已经修改了,我只是想确认下。
应该不是rom的问题,两个机器都是这样,把那几句代码注释掉就好了
你可以试试 1.12.2 版本,已经有了
好的
你应用的主题是啥?
刚试了下好像还是不行, 我是直接运行你的demo也是这样,我自己的主题是 Theme.AppCompat.Light.NoActionBar
你 rom 肯定是定制过的,把原生 toast 的 textview 的 TextAppearance 修改过
但是我直接用原生的Toast.makeText(activity,"sadsad",Toast.LENGTH_LONG).show(); 是正常的,而且我把下面这几句代码注释掉也是正常的
我知道问题是出在 TextViewCompat.setTextAppearance(tvMessage, android.R.style.TextAppearance);
这个上,就是因为我设置了这个的原因,你 rom 改了 toast 样式
好吧 那就先这样吧 问题不大
不知道别人有没有这个情况 我是在华为和努比亚的手机上遇见的
你把我那句换成这个 tvMessage.setTypeface(null);
试试
还是不行
反正是只要把这句注释掉就没问题 TextViewCompat.setTextAppearance(tvMessage, android.R.style.TextAppearance);
你 ui 不给你统一 toast 的吗,你自己设置背景和字体颜色去适配,干嘛一定要用系统的呢。
尽管你手上的机器是黑色字体,但在其他很多机器就是白色的了,这就会造成不统一吧,所以还是自己设置下统一不就好了么
没 toast直接就是原生的 先这样吧 问题不大
你用的手机 rom 都是定制过的,不是谷歌原生的,所以厂家可能会修改样式,明白了吗
恩 知道 国内绝大多数rom都是定制的
你试试这段代码
int msgColor = tvMessage.getCurrentTextColor();
TextViewCompat.setTextAppearance(tvMessage, android.R.style.TextAppearance);
if (sMsgColor != COLOR_DEFAULT) {
tvMessage.setTextColor(sMsgColor);
} else {
tvMessage.setTextColor(msgColor);
}
可以了
还是 1.12.2 版本,你更新下,我覆盖了。
代码好像没有覆盖掉
那用 1.12.3 吧
1.12.3版本可以了
建议不要修改ToastUtils默认样式。看着很别扭。