您的位置:首页 > 其它

Fragment切换重新与不重新加载界面

2016-07-05 13:45 288 查看

Fragment切换重新或不重新加载界面

在实现开发应用时,有时Fragment切换时界面的信息需要更新,则需要重新加载,否则不需要;

下面实现了默认的fragment 、 不重新加载 与 重新加载的方法,只需你自己的fragmeng和 放fragment的布局id;

注:是import android.app.Fragment包的;

如果想换成v4包的请注意其他的包类型统一,并修改:mFm = getSupportFragmentManager();

[java]
view plain
copy





/** 
     * 设置默认的fragment,即//第一次加载界面; 
     */  
    private void setDefaultFragment(Fragment fm) {  
        mFm = getFragmentManager();  
        FragmentTransaction mFragmentTrans = mFm.beginTransaction();  
  
        mFragmentTrans.add(R.id.id_addfram, fm).commit();  
  
        mContent = fm;  
    }  
  
    private FragmentManager mFm;  
    private Fragment mContent;  
  
    /** 
     * 修改显示的内容 不会重新加载 * 
     */  
    public void switchContent(Fragment to) {  
        if (mContent != to) {  
            FragmentTransaction transaction = mFm.beginTransaction();  
            if (!to.isAdded()) { // 先判断是否被add过  
                transaction.hide(mContent).add(R.id.id_addfram, to).commit(); // 隐藏当前的fragment,add下一个到Activity中  
            } else {  
                transaction.hide(mContent).show(to).commit(); // 隐藏当前的fragment,显示下一个  
            }  
            mContent = to;  
        }  
    }  
  
    /** 
     * 修改显示的内容 但会重新加载 * 
     */  
    public void switchContent2(Fragment to){  
        FragmentTransaction transaction = mFm.beginTransaction();  
        transaction.replace(R.id.id_addfram,to);  
        //transaction.addToBackStack(null);  
        transaction.commit();  
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: