• fragment中的replace和hide与shou方法的区别


    在我们使用fragment去填充frame的布局的时候,有两个方法可供我们使用,一个是ft.replace(),另一种是使用hide()和shou()方法。这两个方法所产生的效果是有差别的, 
    使用ft.replace(),如replace字面意思,就是覆盖,就是把当前页面使用你选择的页面去覆盖他,比如从fragmentA—>fragmentB,这样做,会有一个缺点,就是当你从fragmentB返回上个页面fragmentA的时候,fragmentA是被重新create的。也就是说,页面被重新刷新一样(想想,假如fragmentA是类似于淘宝商品的页面,上拉刷新,你找了十几分钟,终于找到喜欢的宝贝了,突然不小心按了购物车,这时候你再点回首页,竟然重新刷新了,这时候你会是什么感觉)当然,根据需求去做就好。 
    而所谓的hide和shou方法就不一样,他不会去覆盖,和把fragment销毁,只是把它hide(隐藏起来) 
    下面的代码,就是使用hide和show方法的,这样切换的时候,就不会将上个页面的信息重新加载了

    indexFragment =0;
     public void switchFragment(int checkIndex) {
            ft = fm.beginTransaction();
            Fragment currentFragment = fragmentList.get(indexFragment);
            Fragment targetFragment = fragmentList.get(checkIndex);
            if (currentFragment != targetFragment) {
                if (!targetFragment.isAdded()) {
                    ft.hide(currentFragment).add(
                            id.my_frame, targetFragment);
                } else {
                    ft.hide(currentFragment).show(targetFragment);
                }
            } else {
                if (!targetFragment.isAdded()) {
                    ft.add(id.my_frame, targetFragment)
                            .show(targetFragment);
                }
            }
            ft.commit();
            indexFragment = checkIndex;
    
    
        }
    
  • 相关阅读:
    malloc和new的区别
    Http协议解析
    Linux基础命令-history
    Linux基础命令-last
    Linux基础命令-who
    Linux基础命令-free
    Linux基础命令-uptime
    Linux基础命令-uname
    Linux基础命令-ifconfig
    Linux基础命令-killall
  • 原文地址:https://www.cnblogs.com/antble/p/7411910.html
Copyright © 2020-2023  润新知