在 show DefalutCallback 之前设置showCallback 会被 DefaultCallback 覆盖
JohnsonJLi opened this issue · 4 comments
JohnsonJLi commented
横竖屏切换的时候 出现这个问题
LoadService.initCallback(LoadSir.Builder builder)
new Handler().post(new Runnable() {
@Override
public void run() {
if (defalutCallback != null) {
loadLayout.showCallback(defalutCallback);
}
}
});
执行了 ViewModel 回复数据 showSuccess 之后 被设置的 DefaultCallback (LoadingCallback) 覆盖,导致一直显示 DefaultCallback
KingJA commented
@JohnsonJLi 你好,如果你想避免横竖屏切换时重启Activity的话,可以尝试在AndroidManifest.xml中对应Activity下加入:
android:configChanges="orientation|keyboardHidden|screenSize"
JohnsonJLi commented
我现在有两种方案吧
-
不使用 DefaultCallback, 在base基类设置LoadSir时调用 LoadingCallback
-
新建一个boolean变量判断是否设置过Callback
if (defalutCallback == null) { return; } new Handler().post(new Runnable() { @Override public void run() { if (loadLayout.isFirst()) { loadLayout.showCallback(defalutCallback); } } });
JohnsonJLi commented
这样可以解决 横竖屏切换(Fragment 设置了 setRetainInstance(true)) , 切换夜间模式, ViewModel 重置数据时 showSuccess 被 defalutCallback 覆盖的问题.