片段替换闪烁的旧片段
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
并返回平滑过渡。
我正在替换片段到 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
并返回平滑过渡。