Closed Reginer closed 3 years ago
小伙子,这个是因为 setGravity 方法是同步的,而 show 方法是异步的,因为它最终会经过 Handler 才会显示出来,所以就会导致 show 方法比两次 setGravity 要慢执行。
解决这个问题的方式也很简单,搭配 XToast 框架即可,让 XToast 去代替显示一些局部特殊定制的 Toast,具体代码如下:
new XToast<>(ToastActivity.this)
.setDuration(2000)
.setView(ToastUtils.getStyle().createView(getApplication()))
.setAnimStyle(android.R.style.Animation_Toast)
.setText(android.R.id.message, R.string.verify_failed)
.setGravity(Gravity.TOP)
.show();
原因是什么我倒是知道,框架里显示延迟了200毫秒
解决这个问题的方式也很简单,搭配 XToast 框架即可,让 XToast 去代替显示一些局部特殊定制的 Toast,具体代码如下:
new XToast<>(ToastActivity.this) .setDuration(2000) .setView(ToastUtils.getStyle().createView(getApplication())) .setAnimStyle(android.R.style.Animation_Toast) .setText(android.R.id.message, R.string.verify_failed) .setGravity(Gravity.TOP) .show();
了解了
如何给某一单独吐司设置位置? 比如
这个写法理论上可以,先设置为显示在最上面,之后显示吐司,之后再设置回去,也就是其他吐司还显示在中间。 实际使用中发现,等到文字显示的时候,其实已经变成设置到中间了