Fragment动态加载

//首先需要先实例好n个全局Fragment

//private  Fragment  currentFragment=new Fragment();(全局)

private  FragmentTransaction switchFragment(Fragment targetFragment) {

    FragmentTransaction transaction = getSupportFragmentManager()
            .beginTransaction();
    if (!targetFragment.isAdded()) {
        //第一次使用switchFragment()时currentFragment为null,所以要判断一下
        if (currentFragment != null) {
            transaction.hide(currentFragment);
            }
        transaction.add(R.id.fragment, targetFragment,targetFragment.getClass().getName());

        } else {
            transaction
                    .hide(currentFragment)
                    .show(targetFragment);


        }
        currentFragment = targetFragment;
       return   transaction;
    }

在点击切换Fragment时调用:

@Override
public void onTabSelected(@IdRes int tabId) {
        if (tabId == R.id.tab_one){
            switchFragment(first).commit();
        }
        if (tabId == R.id.tab_two){
            switchFragment(second).commit();
        }
        if (tabId == R.id.tab_three){
            switchFragment(third).commit();
        }
    }

如果fragment数据更新了怎么办?
onHiddenChanged()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容