【重大bug】viewpager使用的时候加载数据应该在setOnPageChangeListener里加载
【重大bug】viewpager使用的时候加载数据应该在setOnPageChangeListener里的onPageSelected里加载,我说怎么首页有数据,第二页就是空白,就是加载了但是数据不显示
mPagerTab.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
BaseFragment fragment = FragmentFactory
.createFragment(position);
// 开始加载数据
fragment.loadData();
}
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
而不是viewpager每个页面的fragment的oncreateview方法里加载数据,错误写法:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// TextView view = new TextView(UIUtils.getContext());
// view.setText(this.getClass().getSimpleName());
// return view; mLoadingPage = new LoadingPage(UIUtils.getContext()) {
@Override
public StateResult onLoadData() {
return BaseFragment.this.onLoadData();
} @Override
public View onCreateSuccessView() {
return BaseFragment.this.onCreateSuccessView();
}
};
mLoadingPage.loadData();//开始加载数据
return mLoadingPage;
}
因为你后面还要return一个布局,所以你的布局都还没弄好,你加载数据干嘛咯?
但是Activity的oncreate方法里可以加载数据,只要先设置好布局
setContentView(mLoadingPage)
就可以了:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); mLoadingPage = new LoadingPage(this) { @Override
public ResultState onLoad() {
return HomeDetailActivity.this.onLoad();
} @Override
public View onCreateSuccessView() {
return HomeDetailActivity.this.onCreateSuccessView();
}
}; // setContentView(R.layout.activity_main);
setContentView(mLoadingPage);// 直接将一个view对象设置给activity
// 开始加载网络数据
mLoadingPage.loadData();
}
PS:
1.setOnPageChangeListener已经过时了,应该用addOnPageChangeListener代替
2.一般我们viewpager都是搭配PagerIndicator或者pagerTab,所以要添加页面切换监听的话,是要给PagerIndicator或者pagerTab添加,否则就会有问题——
问题1)pagerTab上该highlight的字体不highlight
问题2)刚打开应用,onPageSelected(int position)方法不会被回调,切换页面的时候才被回调。
所以本帖所遇到的bug正确的解决方法是:
1.给PagerIndicator或者pagerTab,setOnPageChangeListener
2.在onPageSelected(int position)方法里加载数据
【重大bug】viewpager使用的时候加载数据应该在setOnPageChangeListener里加载的更多相关文章
- viewPager使用时加载数据时显示IllegalStateException异常,解决不了。。。。
从newsPager中得到newsDetailTitles标题的详细内容,这是通过构造器传过来的.打印日志78行能打印,45行打印出来共size是12.但是程序出现了异常java.lang.Illeg ...
- Android之Viewpager+Fragment实现懒加载
我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用.而ViewPager默认会缓存三页数据,即:Viewpager每加载一个Fra ...
- Android ViewPager Fragment使用懒加载提升性能
Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Androi ...
- echarts官网上的动态加载数据bug被我解决。咳咳/。
又是昨天,为什么昨天发生了这么多事.没办法,谁让我今天没事可做呢. 昨天需求是动态加载数据,画一个实时监控的折线图.大概长这样. 我屁颠屁颠的把代码copy过来,一运行,caocaocao~bug出现 ...
- 巧力避免ViewPager的预加载数据,Tablayout+Fragment+viewPager
问题描述 最近在进行一个项目的开发,其中使用到了Tablayout+Fragment+viewPager来搭建一个基本的框架,从而出现了设置数据适配器的时候,item的位置错乱问题.我打印log日志的 ...
- Android viewpager + fragment取消预加载
1,在fragment中重写setUserVisibleHint方法private boolean isVisibleToUser;@Overridepublic void setUserVisibl ...
- 淘宝购物车页面 智能搜索框Ajax异步加载数据
如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区 ...
- iscroll5 上拉,下拉 加载数据
我这里的思路是上拉时候只是加载第一页的内容,可根据实际情况修改其中的代码.请勿照搬.样式没怎么调,可以加载gif动画.1.没有数据时候,下拉可以加载数据.2.没有数据时候,点击也可以加载数据.3.其余 ...
- Android中GridView滚动到底部加载数据终极版
之前在项目中有一个需求是需要GridView控件,滚动到底部自动加载.但是呢GridView控件并不提供诸如ListView监听滚动到底部的onScrollListener方法,为了实现这样一个效果, ...
随机推荐
- 【转】MapReduce的优化
相信每个程序员在编程时都会问自己两个问题“我如何完成这个任务”,以及“怎么能让程序运行得更快”.同样,MapReduce计算模型的多次优化也是为了更好地解答这两个问题. MapReduce计算模型的优 ...
- 【MySQL】查询优化实例解析-延迟关联优化
[提出问题] 从数据表t通过分页查询的方式读取数据,读取时要根据a1排序.t有80万行记录,当OFFSET很大时,读取速度很慢.优化后查询速度提升很快. 下图是表的定义,一共有几十个字段,RowLen ...
- 魅族手机Listview下拉出现hold字样的奇葩问题解决方案
前几天测试在魅族手机上测试,下拉listview,出现奇葩的hold字样,╭∩╮(︶︿︶)╭∩╮,这锅老子不背,但是问题还得解决吧,如下是对于魅族不同版本的出现这种情况的处理: 2.3之前: andr ...
- 常用JavaScript字符串方法简述
网址来源:http://www.html-js.com/article/JS-rookie-in-the-rookie-to-start-learning-to-fly-the-commonly-us ...
- hdu_5927_Auxiliary Set(xjb搞)
题目链接:hdu_5927_Auxiliary Set 题意: 给一棵n个节点的树,最开始全部都是重点,现在有q个询问,每次给你一些轻点,并叫你输出整棵树的重点数量, 轻点可能会变为重点,如果这个轻点 ...
- HDU 2058 The sum problem(枚举)
The sum problem Problem Description Given a sequence 1,2,3,......N, your job is to calculate all the ...
- 信息处理,分而治之-- ESFramework 使用技巧
ESFramework开发手册系列文章已经详细介绍了如何使用ESPlus提供的ESPlus.Application.CustomizeInfo空间来发送和处理自定义信息,而且,在我们在前面介绍的de ...
- 消息同步调用-- ESFramework 4.0 进阶(07)
分布式系统的构建一般有两种模式,一是基于消息(如Tcp,http等),一是基于方法调用(如RPC.WebService.Remoting).深入想一想,它们其实是一回事.如果你了解过.NET的Prox ...
- tomcat 7 启动超时设置。。。实在太隐蔽了
打开Tomcat,选择 Window->Show View->Servers,在主窗口下的窗口中的Servers标签栏鼠标左键双击tomcat服务器名,例如 Tomcat v7.0 Ser ...
- 图片拉伸:resizableImageWithCapInsets
iOS 5.0 在iOS 5.0中,UIImage有一个新方法可以处理图片的拉伸问题 - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)ca ...