私人借款微信号微信借款 就一百 哪位好人帮帮我 因为是中学生 借钱软件用不了

小知识点(37)
在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment
但是,这样会有一个问题 ,应该很多朋友都遇到过:
每次切换的时候,Fragment都会重新实例化,也就是运行OnCreatVIew()方法
那么如何让多个Fragment彼此切换时不重新实例化?
正确的切换方式是add(),切换时hide(),add()另一个Fragment,再次切换时,只需hide()当前,show()另一个。
//之前显示的fragment
& & & & private Fragment mC
& & & & /** 修改显示的内容 不会重新加载 **/
& & & & public void switchContent(Fragment to) {
& & & & & & & & if (mContent != to) {
& & & & & & & & & & & & FragmentTransaction transaction = getSupportFragmentManager()
& & & & & & & & & & & & & & & & & & & & .beginTransaction();
& & & & & & & & & & & & if (!to.isAdded()) { // 先判断是否被add过
& & & & & & & & & & & & & & & & transaction.hide(mContent).add(R.id.content, to).commit(); // 隐藏当前的fragment,add下一个到Activity中
& & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & transaction.hide(mContent).show(to).commit(); // 隐藏当前的fragment,显示下一个
& & & & & & & & & & & & }
& & & & & & & & & & & & mContent =
& & & & & & & & }
& & & & & & & & showContent();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:45895次
积分:1670
积分:1670
排名:千里之外
原创:81篇
转载:61篇
评论:37条
(1)(5)(4)(11)(28)(26)(17)(26)(14)(1)(2)(2)1199人阅读
心得分享(10)
&span style=&font-size:18&&&strong&最近的一个项目用到了viewpager加fragment,但是来回滑动的时候会出现重新联网加载的现象,仔细研究了发现其中的原因,在这里分享一下。&/strong&&/span&
起初比较迷惑,让后就在fragment的生命周期中挨个log了一下最后发现在FragmentPagerAdapter默认会保存的三个item也就是当前的一个,前一个和后一个。滑动过程中适配器默认会把前一个之前的item destroy掉,所以当滑动回来时就依然会重新加载。也就是还会执行一次onCreateView的方法。分析其原因就是适配器销毁了之前的item,自然解决办法就是不让他销毁。
具体方法就是重写FragmentPagerAdapter的destroyItem方法注释掉super.destroyItem(container, position, object);就行了。
public void destroyItem(ViewGroup container, int position, Object object) {
//super.destroyItem(container, position, object);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4810次
排名:千里之外
(1)(2)(2)(1)(2)(5)(4)匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 微信私人24小时借款 的文章

 

随机推荐