您的位置:首页 > 移动开发 > Android开发

解决Android开发中ViewPager动态设置PagerAdapter时第二次进入Fragment内容不显示的问题

2015-04-06 16:28 986 查看

问题描述

笔者最近的Android项目要用到PagerSlidingTabStrip和ViewPager的组合,但是从github上下载源码后顺利运行示例项目,用到自己的项目后发现一个问题,就是第二次进入该ViewPager所在Fragment后PagerSlidingTabStrip载入正常,但是ViewPager不显示内容,为一片空白。于是追踪代码,发现ViewPager的子Fragment的onCreatView方法未被调用,于是怀疑在替ViewPager设置Adapter的环节出了问题。

以下是我第一次的Adapter代码

public class MyPagerAdapter extends FragmentPagerAdapter {

private final String[] TITLES = { "外卖订单", "快递订单" };

public MyPagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}

@Override
public int getCount() {
return TITLES.length;
}

@Override
public Fragment getItem(int position) {
return OrderListFragment.newInstance(position);
}

}


经过各种搜索后发现继承的Adapter不对,将FragmentPagerAdapter改为FragmentStatePagerAdapter后第二次进入就能正常加载Fragment内容了。

之后的代码

public class MyPagerAdapter extends FragmentStatePagerAdapter {

private final String[] TITLES = { "外卖订单", "快递订单" };

public MyPagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}

@Override
public int getCount() {
return TITLES.length;
}

@Override
public Fragment getItem(int position) {
return OrderListFragment.newInstance(position);
}

}


笔者也是第一次用ViewPager,对于机制什么的也不太熟悉,希望能帮到也出现这个问题的人。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐