1.2fragment的基本使用

1.切换依赖FragmentTransaction

fm=getFragmentManager();
FragmentTransaction fragmentTransaction=fm.beginTransaction();
...
fragmenttransaction.commit();

2.fragment的切换方式

  • add、replace(移除其他fragment,会销毁其他frament,在添加新的fragment)、remove

  • hide、show(占用内存,但现在手机内存比较大,推荐使用)

  • detach、attact(销毁fragment的view,但不会销毁fragment),特别不推荐的方式,没释放多少内存,页面重建时,还需要重建view

3.fragment切换使用模板

实例

/**ui声明*/
protected void onCreate(){
    //初始化所有ui
    //添加默认要显示的fragment
    mHomeFragment=new HomeFragment();
    fm=getFragmentManager();
    FragmentTransaction fragmentTransaction=fm.beginTransaction();
    fragmenttransaction.commit();
}


/**初始化ui,添加点击事件*/
private void initView(){

}

public void onClick(View v){
    FragmentTransaction fragmentTransaction=fm.beginTransaction();
    fragmenttransaction.commit();
    switch(v.getId()){

    }
    //点击时显示(若未创建先创建),隐藏其他

    if(mHomeFragment ==null){
        mHomeFragment=new HomeFragment();
        fragmentTransaction.add(R.id.content_layout,mHomeFragment);
    }else{
        fragment.show(mHomeFragment)
    }
}

/**隐藏其他fragment*/
private void hideFragment(Fragement fragment,FragmnetTransation ft){
    if(fragment!=null){
        ft.hide(fragment);
    }
}

Last updated

Was this helpful?