片段替换闪烁的旧片段

Fragment replace flashing old fragment

我正在替换片段到 framelayout.But 当我替换时,旧片段显示一秒钟然后它是 replacing.How 我可以防止闪烁旧片段吗?我正在使用此代码:

FragmentManager fragmentManager=getSupportFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
SettingsFragment conv=new SettingsFragment();
SettingsFragment.newInstance(LOGGED_USERNAME);
fragmentTransaction.replace(R.id.container,conv);
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

我也遇到了同样的问题。我找到了一个解决方法 - 首先添加新片段,然后显示它并隐藏旧片段。然后在异步任务中删除旧的。解决方案有点混乱,但我没有找到更好的解决方案。 在下面的示例中,旧片段具有标记 fragment,而新片段具有标记 fragment2.

FragmentManager fragmentManager = getSupportFragmentManager();
                fragmentManager.beginTransaction().add(R.id.content_frame, fragment, "fragment2").commit();
                fragmentManager.beginTransaction().show(fragment).commit();
                fragmentManager.beginTransaction().hide(fragmentManager.findFragmentByTag("fragment")).commit();
                Timer timer = new Timer();
                timer.schedule(new TimerTask() {

                    @Override
                    public void run() {
                        getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentByTag("fragment")).commit();                      
                    }
                }, 1000);

我的 phone 最近升级到 Marshmallow (Galaxy S6),从那时起我的所有片段 'flash' 而不是片段过渡使用的快速淡入/细微放大提供。完全删除事务的转换:

fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);

问题似乎已解决。我建议尝试在交易上实现自定义动画,看看是否有帮助。

我遇到了同样的问题。就我而言,它是由以下原因引起的:

android:animateLayoutChanges="true"

刚刚从闪烁的片段中移除 android:animateLayoutChanges 并返回平滑过渡。