FragmentTransaction的add(),replace(),以及show(),hide()

最近在做一个Android的电商App,之前一直使用FragmentTransaction的add(),hide()和show()来控制主页的显示与隐藏。最近发现一个问题,因为show()和hide() 来控制显示隐藏的话是不走Fragment的onResume方法的,而如果使用replace()的话就是全部Fragment都走onResume()方法。这就无法满足我一部分Fragment点击刷新而另一部分不刷新的要求。最后发现,通过定义两个FragmentManager和FragmentTransaction,并且在布局文件里定义两个<Fragment></Fragment>进行一对一的控制就可以解决该问题。

时间: 2024-10-10 20:50:39

FragmentTransaction的add(),replace(),以及show(),hide()的相关文章

PHP memcache add replace set的区别和其他用法收集

add replace set的区别 最近在面试时遇到一个问题 memcache 的add replace set的区别,故在此进行加强 add 是向服务器添加一个缓存的数据,当该键已存在会返回一个false,否则返回一个true replace 是在服务器内一个替换一个缓存的数据,当该键不存在时会返回一个false,否则返回true set 则是add和replace的集合体,如果该键存在就替换,不存在就设置,返回的是true increment decrement delete加法减法删除运

Android Fragment add/replace以及backstack

无论Fragment以何种方式加入,都不会影响backstack,backstack由addToBackStack函数决定,只有调用了这个函数,才会将Fragment加入返回栈. 那么add和replace的区别是什么呢? 以add方式加入Fragment,底层的Fragment被覆盖,当按下返回键时,当前Fragment弹出返回栈,底层Fragment直接显示出来,无需重建. 以replace方式加入Fragment,底层Fragment被替换(replace嘛),当按下返回键时,当前Frag

Fragment(11)FragmentTransaction的 add 注意事项

函数: public abstract FragmentTransaction add(int containerViewId, Fragment fragment); getFragmentManager().beginTransaction().add(R.id.frgmt_top, new TopFrgmt()).commit() 作用: add 是把一个fragment添加到一个容器 container 里.并且显示container的内容+fragment对应的view的内容.    

Android开发之多Fragment切换优化

问题分析 一直在简书里看别人的技术贴,今天我也来写点自己的心得!最近在写一个项目用到大量的Fragment后的总结! 我想刚刚接触安卓的同学或许会这么写: FragmentManager fragmentManager=getSupportFragmentManager(); FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction(); fragmentTransaction.add(ViewId,frag

android FragmentTransaction.replace的用法介绍

创建Fragment Fragment和Activity有很多相似之处,例如可以不带UI,但这样做对两者似乎都没什么意义.他们的创建方式也很相似,例如下面的代码: [html] view plaincopyprint? package test.fragments; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View;

Maste Note for OCR / Vote disk Maintenance Operations (ADD/REMOVE/REPLACE/MOVE)

Doc ID 428681.1 Applies to: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.1.0 [Release 10.2 to 11.2]Information in this document applies to any platform. Goal The goal of this note is to provide steps to add, remove, replace or mo

Android中Fragment的Hide和Show

我们都知道,Fragment动态添加的时候我们可以使用FragmentTransaction的add和replace方法,replace方法就等效于对这个Fragment先执行remove(),再执行add().但是在实际的项目中,有很多时候我们会用到底部是一个RadioGroup包裹的RadioButton,上面用Fragment的情况,因为我们是从网络上获取的数据,这种时候我们不希望点击加载过的页面(也就是加载过的Fragment)的时候,每次都重新加载.也就是使用FragmentTrans

android FRAMENT的切换(解决REPLACE的低效)

在项目中切换Fragment,一直都是用replace()方法来替换Fragment.但是这样做有一个问题,每次切换的时候Fragment都会重新实列化,重新加载一次数据,这样做会非常消耗性能用用户的流量. 官方文档解释说:replace()这个方法只是在上一个Fragment不再需要时采用的简便方法. 正确的切换方式是add(),切换时hide(),add()另一个Fragment:再次切换时,只需hide()当前,show()另一个.这样就能做到多个Fragment切换不重新实例化: 切换方

Fragment,FragmentManager, FragmentTransaction详解

Fragment是3.0引入的新组件,在3.0之前需要引入v4包的Fragment进行向下兼容,在项目中会频繁用到. 先说下3.0的Fragment用法. 其中,Fragment的生命周期就不多说了,首先构建Fragment 的View对象. @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-gener