项目经验--Fragment(基于ViewPager)
来源:互联网 发布:mac app store出错 编辑:程序博客网 时间:2024/05/17 02:47
一、主要是纠结于一下几点:
1、Fragment初始化的时机
2、因为错误的设计,导致数据请求量很大,为什么滑动Fragment每次都要重新请求数据,加载数据,我的数据init是放在onDreate里面的,是不是应该只在new的时候请求呢?
借鉴与zhy的博客,掺加个人的见解。http://blog.csdn.net/lmj623565791/article/details/37970961
一开始我以为是自己Fragment见识不够深,然后发现遇到相似问题的都是viewpager与Fragment结合的时候遇到的问题,现在想,当时只注重效果,没有关注问题而导致现在的窘境,必须注意
附具体问题解决链接:
1)ViewPager+Fragment+广播来实现一个滑动页面切换
http://www.codes51.com/article/detail_110234.html
其实就是取消预加载的问题:
http://download.csdn.net/detail/hyq912/8353881
http://www.2cto.com/kf/201501/368954.html
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=564267
2)【ViewPager+Fragment】ViewPager中切换界面Fragment被销毁的问
http://www.dnzg.cn/chengxusheji/Android/20140724-42144.html
二、Fragment知识点精华
1、熟识FragmentTransaction的方法
add,remove,replace,hide,show,detach(),attach()
值得注意的是:如果你喜欢使用Fragment,一定要清楚这些方法,哪个会销毁视图,哪个会销毁实例,哪个仅仅只是隐藏,这样才能更好的使用它们。
a、比如:我在FragmentA中的EditText填了一些数据,当切换到FragmentB时,如果希望会到A还能看到数据,则适合你的就是hide和show;也就是说,希望保留用户操作的面板,你可以使用hide和show,当然了不要使劲在那new实例,进行下非null判断。
b、再比如:我不希望保留用户操作,你可以使用remove(),然后add();或者使用replace()这个和remove,add是相同的效果。
c、remove和detach有一点细微的区别,在不考虑回退栈的情况下,remove会销毁整个Fragment实例,而detach则只是销毁其视图结构,实例并不会被销毁。那么二者怎么取舍使用呢?如果你的当前Activity一直存在,那么在不希望保留用户操作的时候,你可以优先使用detach。
d、一定记得replace是remove和add的合体,并且如果不添加事务到回退栈,前一个Fragment实例会被销毁
2、
3、实例:
1、利用空白Fragment保存数据http://blog.csdn.net/lmj623565791/article/details/37936275
2、fragment-activity-fragment之间的通信:http://blog.csdn.net/lmj623565791/article/details/42628537
- 项目经验--Fragment(基于ViewPager)
- ViewPager+Fragment(二)
- Fragment详细解说二(android项目剖解之ViewPager+Fragment 实现tabhost效果 )
- Android项目ViewPager+Fragment的基本使用
- Viewpager+Fragment实现项目主布局
- ViewPager + fragment 中 懒加载的一点经验
- Fragment 嵌套ViewPager(ViewPager里面有多个Fragment)
- Android ViewPager刷新Fragment数据(ViewPager获取Fragment对象)
- Android ViewPager刷新Fragment数据(ViewPager获取Fragment对象)
- ViewPager+Fragment(滑动+点击)
- ViewPager+Fragment(小圆点)
- TabLayout+ViewPager+Fragment(代码)
- Fragment+ViewPager
- Viewpager&Fragment
- viewpager + fragment
- viewpager+fragment
- viewpager+fragment
- ViewPager+Fragment
- 【bzoj1318/bzoj1307】【玩具】【max】
- HTML5秘籍---第一章(HTML5简介)
- 设计模式-开发中的23种设计模式详解
- ObjectAnimator.ofFloat不生效
- (重要)Stanford机器学习---怎样选择机器学习方法、系统
- 项目经验--Fragment(基于ViewPager)
- ocp-v13-064
- 如果使用得当,MySQL 也可以化身 NoSQL
- xcode7 上传 appStore 失败 Error Itms-90339 和 CFBundleExecutable key 的 问题
- 去掉 AD13 PCB网络连线中的双斜杠
- ocp-v13-065
- flume学习(二):如何找到cm安装的flume的配置文件
- 见缝插针
- 解决 veiw 之间 因为父view alpha 等于0 导致全部透明的问题