ViewPager + Fragment 这些坑你踩过吗?
来源:互联网 发布:orange 软件 编辑:程序博客网 时间:2024/04/27 20:25
1.ViewPager + Fragment,fragment 的页面不显示:
1.PullToReFreshView/ScrollView 嵌套ViewPager有冲突导致ViewPager高度变化,这一点和ScrollView包含ListView/GridView一个道理,在上一篇阐述过了。
2.在ViewPager的宿主Activity中设置mViewPager.setVisibility(View.GONE); 导致ViewPager并没有初始化Fragment. 举例来说:我在ViewPager的宿主Activity的OnResume();
里需要发起网络请求,同时mViewPager.setVisibility(View.GONE); ,等待网络访问返回再设置mViewPager.setVisibility(View.VISIBLE);结果无论如何Fragment都不显示,后来改为mViewPager.setVisibility(View.INVISIBLE); 就Ok了。
原因“:mViewPager.setVisibility(View.GONE); ViewPager不会绘制界面 即 OnDraw();不会执行
mViewPager.setVisibility(View.INVISIBLE); ViewPager绘制界面 即 OnDraw();会执行
2. Fragment 生命周期中的OnResume(); OnPause(); 只会在第一次进入Fragment的时候才会被执行,怎么办? 两种解决方案(我只知道两种,别喷)。
1.ViewPager.setOnPagerChangedListener(new OnPagerChangedListener(
.........................
onPagerSelected(int position) {
/**如果是ViewPager+Fragment的模式,一般都会有一个FragmentList,这里为了把Fragment OnResume中执行的代码放到这里使用如下方法**/
if(mFragmentList.get(position) instanceof xxFragment) {
................
}
}
));
2.fragment onhiddenchanged();方法,但是这种实现是建立的在Fragment的界面在可见不可见之间变化才会被执行(不可取),但是如果你的Fragment刚好需要在可见不可见之间变化那就OK了
- ViewPager + Fragment 这些坑你踩过吗?
- 深度学习这些坑你都遇到过吗?
- 深度学习这些坑你都遇到过吗?
- 这些车你见过吗???
- 你见过这些金融行话吗?
- 辞职创业?你经历过这些吗?
- 面试,你回答过这些提问吗?
- 这些你见过吧?
- MySQL的这些显而易见的坑你踩过了没
- 爸妈用这些雷人语录训过你吗?
- 这些SQLite与SQL差异问题,你遇到过吗
- 这些编程工具你都用过吗?
- 阅读的时候你注意过这些吗?
- 这些渐行渐远的友情,你有过吗?
- 这些SQLite与SQL差异问题,你遇到过吗
- 编程中你注意过这些细节吗
- 这些天踩过的坑
- 这些年,踩过的mysql坑。
- 1093. Count PAT's (25)
- Android中Alarm的机制
- 菜鸟调错(七)——控制台中执行mvn命令后提示‘cmd’不是内部或外部命令
- Eclipse快捷键
- IOS block编程指南 2 block开始
- ViewPager + Fragment 这些坑你踩过吗?
- 1094. The Largest Generation (25)
- Gson解析二
- 1095. Cars on Campus (30)
- 基于java的后台截图功能的实现
- iOS_NSProxy
- win10预览版系统10036 P2P更新方法及下载地址
- windows核心编程之使用线程APC回调安全退出多个等待线程
- 命令: chmod 使用方法