一个可控行数的ViewPager+GridView
实现思路:
1. 首先获取总数据 2. 设置每页加载个数 3. 根据算法实现页数的计算 请在源码中查看 4. 根据页数进行填充数据 请在源码中查看 5. 自定义View继承LinearLayout在自定义view里 addview(GridView) 6. 绘制到viewPagerAdapter里面 @Override public Object instantiateItem(ViewGroup container, int position) { 自定义view gridLayout = new 自定义view; container.addView(gridLayout); return gridLayout; }
效果图
首先贴PageAdapter代码
public class MViewPagerAdapter extends PagerAdapter {
private List<GridviewContentInfo> list;
private Context context;
private int allpage = 1;//总页数默认为1
private int pagesize = 4;//每页显示个数
public MViewPagerAdapter(List<GridviewContentInfo> list, int pagesize, Context context) {
this.list = list;
this.context = context;
this.pagesize = pagesize;
if (list != null)
//计算总页数
if (list.size() % pagesize >= 1) {
allpage = list.size() / pagesize + 1;
} else {
allpage = list.size() / pagesize;
}
}
@Override
public int getCount() {
return allpage;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
List<GridviewContentInfo> data = new ArrayList<>();
//计算每页传递数据
for (int i = position * pagesize; i < (position + 1) * pagesize; i++)