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设置动画, 则显示正常。

浙公网安备 33010602011771号