【重大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里加载的更多相关文章

  1. viewPager使用时加载数据时显示IllegalStateException异常,解决不了。。。。

    从newsPager中得到newsDetailTitles标题的详细内容,这是通过构造器传过来的.打印日志78行能打印,45行打印出来共size是12.但是程序出现了异常java.lang.Illeg ...

  2. Android之Viewpager+Fragment实现懒加载

    我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用.而ViewPager默认会缓存三页数据,即:Viewpager每加载一个Fra ...

  3. Android ViewPager Fragment使用懒加载提升性能

     Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Androi ...

  4. echarts官网上的动态加载数据bug被我解决。咳咳/。

    又是昨天,为什么昨天发生了这么多事.没办法,谁让我今天没事可做呢. 昨天需求是动态加载数据,画一个实时监控的折线图.大概长这样. 我屁颠屁颠的把代码copy过来,一运行,caocaocao~bug出现 ...

  5. 巧力避免ViewPager的预加载数据,Tablayout+Fragment+viewPager

    问题描述 最近在进行一个项目的开发,其中使用到了Tablayout+Fragment+viewPager来搭建一个基本的框架,从而出现了设置数据适配器的时候,item的位置错乱问题.我打印log日志的 ...

  6. Android viewpager + fragment取消预加载

    1,在fragment中重写setUserVisibleHint方法private boolean isVisibleToUser;@Overridepublic void setUserVisibl ...

  7. 淘宝购物车页面 智能搜索框Ajax异步加载数据

    如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区 ...

  8. iscroll5 上拉,下拉 加载数据

    我这里的思路是上拉时候只是加载第一页的内容,可根据实际情况修改其中的代码.请勿照搬.样式没怎么调,可以加载gif动画.1.没有数据时候,下拉可以加载数据.2.没有数据时候,点击也可以加载数据.3.其余 ...

  9. Android中GridView滚动到底部加载数据终极版

    之前在项目中有一个需求是需要GridView控件,滚动到底部自动加载.但是呢GridView控件并不提供诸如ListView监听滚动到底部的onScrollListener方法,为了实现这样一个效果, ...

随机推荐

  1. windows 激活等命令

    Win+R 输入:slmgr.vbs -dlv 显示:最为详尽的激活信息,包括:激活ID.安装ID.激活截止日期slmgr.vbs -dli 显示:操作系统版本.部分产品密钥.许可证状态slmgr.v ...

  2. HashMap,HashTable ,LinkedHashMap,TreeMap的区别

    Map:主要是存储键值对,不允许键重复,但可以值重复. HashMap:根据键的HashCode值来存储数据,根据键直接获取值.具有很快的访问速度,遍历时,取得的数据值的顺序都是随机的.hashMap ...

  3. 关于Java泛型的新解

    ////////////////////////////////////////////////////////////////////////////////为了方便您的观看,请在web版式视图在观 ...

  4. android 一些数据转换方法

    android 一些数据转换方法 package com.ai9475.util; import android.content.Context; import android.content.res ...

  5. 在家用机上搭建 Git https 服务器

    今天主要叙述在家里台式机的虚拟机上搭建支持 https 的 ubuntu git 服务器. 实际上,从一个用户请求家里 git 服务器代码,最终完成代码的传输,主要是通过以下的过程: 首先,从外界寻找 ...

  6. 简单的XML和JSON数据的处理

    一.XML格式装换成json数据格式 using System; using System.Collections.Generic; using System.Linq; using System.W ...

  7. C# Monads的实现(二)

    再谈continuation monad 上一篇中我们已经介绍了continuation monad,但是这个monad与Identity,Maybe,IEnumerable monads稍微难于理解 ...

  8. JS 之完美运动框架

    完美运动框架是对原来的任意值运动框架的改善和效率的提升,即利用了json对属性进行封装,从而提高效率: window.onload=function(){ var oDiv=document.getE ...

  9. 图片上传预览 支持html5的浏览器

    <img src="" width="100px" height="100px"/> <input type=" ...

  10. js与jquery实时监听输入框值变化方法

    本文实例讲述了js与jquery实时监听输入框值的oninput与onpropertychange方法.分享给大家供大家参考.具体如下: 最近做过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时 ...