viewpager

1.使用FragmentPagerAdapter后viewpage的fragement内容不显示

注意:适配器继承FragmentPagerAdapter后 不需要实现isViewFromObject和instantiateItem方法,写了会出现各种问题,我这里就是多写了 isViewFromObject方法。

PagerAdapter与FragmentPagerAdapter区别:
PagerAdapter:
          viewpager(可左右滑动的页面集)的专用布局方法,需要覆盖 instantiateItem、 isViewFromObject 这几个方法。
FragmentPagerAdapter:
          FragmentPagerAdapter继承 viewpager,内部封装了 instantiateItem ,需要覆盖 getItem 方法向 instantiateItem 传递数据。
 
   private PagerAdapter mPagerAdapter = new PagerAdapter() {
        @Override
        public int getCount() {
            return mTitles.length;
        }
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            TextView textView = new TextView(MainActivity.this);
            textView.setText(mTitles[position]);
            textView.setGravity(Gravity.CENTER);
            container.addView(textView);
            return textView;
        }
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View)object);
        }
        @Override
        public CharSequence getPageTitle(int position) {
            return mTitles[position];
        }
    };

public class MainAdaoter extends FragmentPagerAdapter {
    private static final int FRAGMENT_HOME = 0;
    private static final int FRAGMENT_APP = 1;
    private static final int FRAGMENT_GAME = 2;
    private static final int FRAGMENT_SUBJECT = 3;
    private static final int FRAGMENT_RECOMMEND = 4;
    private static final int FRAGMENT_CATEGORY = 5;
    private static final int FRAGMENT_HOT = 6;
    private final String[] mTiltle;
    public MainAdaoter(FragmentManager fm, String[] titles) {
        super(fm);
        mTiltle=titles;
    }
    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case FRAGMENT_HOME: return new HomeFragment();
            case FRAGMENT_APP: return new ApplicationFragment();
            case FRAGMENT_GAME: return new GameFragment();
            case FRAGMENT_SUBJECT: return new SubjectFragment();
            case FRAGMENT_RECOMMEND: return new RecommendFragment();
            case FRAGMENT_CATEGORY: return new CategoryFragment();
            case FRAGMENT_HOT: return new HotFragment();
        }
        return null;
    }
    @Override
    public int getCount() {
        return mTiltle.length;
    }
//    @Override
//    public boolean isViewFromObject(View view, Object object) {
//        return view==object;
//    }
    @Override
    public CharSequence getPageTitle(int position) {
        return mTiltle[position];
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值