1,xml布局
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
2,适配器
viewpager中的单页为layout布局或单个控件时继承PagerAdapter
package com.shilian.yibo.adapter;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.support.v4.view.PagerAdapter;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import com.shilian.yibo.entity.RollingPictureBean;
import com.shilian.yibo.homepage.RollingPageDetailsActivity;
import com.shilian.yibo.utils.MyBitmapUtils;
import com.shilian.yibo.utils.UrlUtils;
import com.shilian.yibo.utils.ValueUtils;
import java.util.List;
/**
* Created by Burn on 2017/2/28.
*/
public class RollingPagerAdapter extends PagerAdapter {
private List<RollingPictureBean> res_list;
private Context context;
public RollingPagerAdapter(Context context, List<RollingPictureBean> res_list) {
this.context = context;
this.res_list=res_list;
}
@Override
public int getCount() {
return res_list.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, final int position) {
final ImageView imageView = new ImageView(context);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
viewpager中的单页为fragment时继承FragmentStatePagerAdapter
package com.shilian.collector.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.ViewGroup;
import com.shilian.collector.entity.OrderBean;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Burn on 2016/11/21.
*/
public class OrderPagerAdapter extends FragmentStatePagerAdapter {
//数据源fragment
private List<Fragment> res_frag_list;
private List<String> res_tab_arr;
/**
* 构造方法
* */
public OrderPagerAdapter(FragmentManager fm,List<Fragment> res_frag_list,List<String> res_tab_arr) {
super(fm);
this.res_frag_list=res_frag_list;
this.res_tab_arr=res_tab_arr;
}
/**
* 重写getItem方法,获取单项
* */
@Override
public Fragment getItem(int position) {
return res_frag_list.get(position);
}
/**
* 重写getCount方法,获取页数
* */
@Override
public int getCount() {
return res_frag_list.size();
}
/**
* 重写getPageTitle方法,获取标题
* */
@Override
public CharSequence getPageTitle(int position) {
return res_tab_arr.get(position);
}
/**
* 重写destroyItem,内部不到用super.destroyItem方法,可以保留fragment不被删除
* */
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
}
}
添加标题:
1,ViewPager标签下添加子标签
<android.support.v4.view.PagerTabStrip(也可以是PagerTitleStrip)
id,width,height,gravity>
</android.support.v4.view.PagerTabStrip>
2,新建list<String>集合存放标题
3,将list集合作为MyPageAdapter的数据源传入
4,在MyPageAdapter中添加标题集合titleList,并用构造方法初始化
重写getPageTitle方法,return titleList.get(position),设置ViewPager的标题
5,为PagerTabStrip设置属性
tab. setBackgroundColor(color.YELLOW)
tab.setTextColor(Colro.RED)
tab.setDrawFullUnderlind(false)背景长线不显示
tab.setTabIndicatorColor(Color.GREEN)选中的短线颜色