Fragment切换过程中会导致`闪屏/闪烁`的问题
Fragment
切换过程中会导致闪屏/闪烁
的问题, 原方法为 :
private void switchPages(int index) {
if (ListUtils.isEmpty(mFragments)) {
return;
}
FragmentManager fragmentManager = getChildFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
Fragment fragment;
for (int i = 0, j = mFragments.size(); i < j; i++) {
if (i == index) {
continue;
}
fragment = mFragments.get(i);
if (fragment.isAdded()) {
transaction.hide(fragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
}
}
fragment = mFragments.get(index);
if (fragment.isAdded()) {
transaction.show(fragment);
} else {
transaction.add(R.id.fl_home_container, fragment);
}
transaction.commitAllowingStateLoss();
}
导致该问题的代码是 transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
在设置的动画时产生的。取消setTransition
设置动画, 则显示正常。
本文作者:风之旅人
本文链接:https://www.cnblogs.com/jooy/p/17302024.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。