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 中国大陆许可协议进行许可。

posted @   javakam  阅读(0)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起