我有一个活动(让我们称之为Home Activity),带有底部导航视图,我将替换所有碎片。在Home Activity中我加载了一个带有搜索图标的片段。该搜索图标会重定向到搜索活动的活动。
当我点击任何搜索结果时,我会转到我的Home Activity并替换上一个片段以显示我最近的搜索结果点击实现。
在这种情况下,复杂性是 - 当我试图替换先前的片段时 - 它对用户可见。因为我有一个过渡动画 - 我可以看到前面的片段正在退出,最新的片段正在进入。
这对用户来说根本不是一个好的体验。如何改进功能,以便用户看不到先前的片段?
答案 0 :(得分:1)
试试这段代码。根据需要创建动画。
public static void callFragment(Fragment fragment, Context context, String TAG) {
FragmentManager fragmentManager = ((AppCompatActivity) context).getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
if (fragment.isAdded()) {
fragmentTransaction.show(fragment);
} else {
// fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.face_out);
fragmentTransaction.setCustomAnimations(R.anim.fragment_slide_top_enter, R.anim.fragment_slide_top_exit, R.anim.fragment_slide_bottom_enter, R.anim.fragment_slide_bottom_exit);
fragmentTransaction.replace(R.id.content_frame, fragment);
fragmentTransaction.addToBackStack(TAG);
}
fragmentTransaction.commit();
}
还提供片段布局文件的背景信息。
答案 1 :(得分:0)
碎片默认是透明的。因此,您需要为搜索结果片段提供背景信息。为backgroind设置背景布局背景。