zoukankan      html  css  js  c++  java
  • 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;
    
    
        }
    
  • 相关阅读:
    Qt 字符串QString arg()用法总结
    Qt子窗口QMidSubwindow全屏出现的问题总结
    QString介绍
    Qt控制台输出QString
    汽车辐射监测系统-Qt开发[转]发
    Eclipse Qt开发环境的建立
    串口调节工具
    QT 多线程程序设计 -互斥
    ArcGIS Spatial Query
    IQueryFielter接口
  • 原文地址:https://www.cnblogs.com/antble/p/7411910.html
Copyright © 2011-2022 走看看