【PagerAdapter】Fragment的陷阱

本文深入探讨了在Android中使用PagerAdapter与Fragment时可能遇到的常见问题和陷阱,包括状态保存、内存泄漏以及Fragment之间的通信。通过实例解析,帮助程序员避免这些问题,优化布局管理和用户体验。
摘要由CSDN通过智能技术生成

</pre>最近做的项目太过奇葩,遇到的问题也挺多,说下今天遇到的问题。<p></p><p>2015--06--01  4:03</p><p>这是一个深夜,想到我的项目就彻夜不能眠,我始终相信刚工作都是这么挺过去的,满心思都是项目,技术,没心思去玩去弹琴唱歌 每天过的很压抑,因为。。感觉自己什么都不会。</p><p>最近公司的项目大体逻辑就是。左右无限翻动,上下无限翻动  你没看错,左右拉加载,上下拉加载或者刷新。这种功能以前从没做过 顶多做过左右拉<strong>ViewPager</strong></p><p><strong>刚开始的几天为了这个模型我蛋疼得要死,还得学习上下啦刷新,从ViewPager+ListView(刷新加载)到ViewPager+Fragment再到ViewPager+纵向ViewPager又回到ViewPager+Fragment(上下滑动切换Fragment)    这蛋疼的节奏显然是一个萌哒哒的初级安卓程序员的作为。</strong></p><p><strong>再使用Fragment的时候出现的最大的一个问题就是  数据加载紊乱,今晚终于解决,因为Adapter都有预加载的功能,我现在显示A页面的时候 Adapter已经跑去实例化B页面去了,根据执行顺序 顺带把我的init()方法也执行了,那么问题就来了,我B页面init()肯定是加载的B页面里的Fragment事务 ,他这么一预加载 直接导致在A显示B页面里的Fragment了 。。。</strong></p><p><strong>解决方案就是在Fragment里判断 当前 Fragment是否是可见状态,如果是的话就去加载数据,否则什么都不干,比如:</strong></p><p><strong>boolean flag = false;</strong></p><p><strong></strong></p><pre name="code" class="java"> <pre name="code" class="java">@Override
	public void setUserVisibleHint(boolean isVisibleToUser) {
		 
		super.setUserVisibleHint(isVisibleToUser);
		// if (isVisibleToUser && isVisible()) {
		if (isVisibleToUser) {
			// 表示本Fragment 虽然可见 但是还没有初始化
			if (!flag) {
				init();
				flag = true;
			} else {
			}
		} else {
		}
	}

 

我加的一个flag表示当前页面是不是已经加载过,
 不知道我有没有表达清楚、、、、、 
到最后问个问题 ,希望大牛看见能 回答我一下

项目业务就是   上下拉加载不同布局的页面,这些页面至少一百张,也就是说你在下拉之前不知道他布局是如何的 只能通过服务器的json来指定控件的显示位置
天真的我以为ViewPager横向我写十张布局,纵向的Fragment让他们复用同一个布局 只是填充内容就行了,结果经理说我们的布局全部不一样,你把布局控件什么的全在java代码里实现  我当时就,,,(也就是说一个应用除了基本设置 登录 分享的小界面  主界面就是有N张不同布局的页面组成)
斗胆问一句 这样的App谁做过,,,或者谁见过。 请教我!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值