Fragment相关知识
第一步:
private FragmentManager manager;
private Fragment f1, f2, f3, f4, f5 ,currentFragment;//最后一个是用来记录当前加载的是那个碎片
第二步:
f1 = new DecorateKnowledgeFragment_1();//装修流程
f2 = new DecorateKnowledgeFragment_2();//装修风格
f3 = new DecorateKnowledgeFragment_3();//装修风水
f4 = new DecorateKnowledgeFragment_4();//装修准备
f5 = new DecorateKnowledgeFragment_5();//装修日记
第三步:
manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.fragment_container, f1);//获得数据成功之后加载碎片 1
transaction.commit();
currentFragment = f1;//记录当前加载的碎片
第四步:切换碎片的两种方式
// FragmentTransaction transaction3 = manager.beginTransaction();
// transaction3.replace(R.id.fragment_container, f3);
// transaction3.commit();
MyUtils.switchFragment( currentFragment , f3 , manager , R.id.fragment_container);
currentFragment = f3;//当前加载的碎片
/**
* 切换碎片,淡入淡出效果
*/
public static void switchFragment(Fragment from, Fragment to ,FragmentManager manager , int layout) {
if (from != to) {
FragmentTransaction transaction = manager.beginTransaction().setCustomAnimations(
android.R.anim.fade_in, android.R.anim.fade_out);
if (!to.isAdded()) { // 先判断是否被add过
transaction.hide(from).add(layout , to).commit(); // 隐藏当前的fragment,add下一个到Activity中
} else {
transaction.hide(from).show(to).commit(); // 隐藏当前的fragment,显示下一个
}
}
}
/**
* 切换碎片,右入右出效果
*/
public static void switchFragment_right(Fragment from, Fragment to ,FragmentManager manager , int layout) {
if (from != to) {
FragmentTransaction transaction = manager.beginTransaction().setCustomAnimations(
R.anim.translate_to_right, R.anim.translate_to_right_hide);
if (!to.isAdded()) { // 先判断是否被add过
transaction.hide(from).add(layout , to).commit(); // 隐藏当前的fragment,add下一个到Activity中
} else {
transaction.hide(from).show(to).commit(); // 隐藏当前的fragment,显示下一个
}
}
}