viewPager+fragment的简洁搭配

    在我们平时的开发当中,随处可见的上面一个指示器,当然用Indicator或者Tablayout都可以,然后配合viewPager进行联动,viewPager里面装着fragment,fragment里面才是我们对应的逻辑和UI操作,举个例子?


向上面的网易新闻一样,2个fragment大致布局相似,都是轮播图加list,像这样的我们完全可以用一个fragment来实现,根据postion来判断,不论是请求网络还是填充数据,或者是逻辑操作,都可以搞定,so。。。下面是实现:

首先是viewPager和Indicator的联动:Acitivity的代码

NewsTabAdapter newsTabAdapter = new NewsTabAdapter(getSupportFragmentManager(),classList,advlist);
adviceTab.setupWithViewPager(advieVp);
adviceTab.setTabMode(TabLayout.MODE_SCROLLABLE);
advieVp.setAdapter(newsTabAdapter);
advieVp.setCurrentItem(0);

接下来是TabAdapter的代码:

@Override
public Fragment getItem(int position) {
    NewsFragment newsFragment = new NewsFragment();
    Bundle bundle = new Bundle();
    bundle.putString("acId",classArray.get(position).acId);     //分类ID        
    newsFragment.setArguments(bundle);
    return newsFragment;
}

在上面的getItem方法中,我们创建了真正需要展示数据和UI的fragment,然后通过bundle传给fragment,当然这里我是利用的分类ID 作为标识;

接下来咱我们的fragment重写的 OncreateView()方法里

通过拿到的分类ID ,当然也可能是其他的标识,进行相应的逻辑操作,赋值数据或者网络操作;

这样是不是比我们普通的创建多个fragment,然后再添加到viewPager里,代码简单了很多,over!









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值