发表于: 2016-12-14 22:48:58
1 735
今天完成的事情:今天完成viewpager的指示器,在布局中使用FrameLayout,放viewPager和一个没有 内容的LinearLayout作为指示器的容器,通过循环获取到list.size()来绘制出和页面数一样的小圆点,
do{
ImageView point = new ImageView(getContext());
LinearLayout.LayoutParams pointParams = new LinearLayout.LayoutParams(30, 30);
pointParams.setMarginEnd(20);
point.setBackgroundResource(R.drawable.guide_gray);
/**
* 判断i == 0 就设置为选中颜色
*/
if (i == 0)
point.setBackgroundResource(R.drawable.guide_blue);
point.setLayoutParams(pointParams);
pointLayout.addView(point);
i++;
}while (i < mList.size());
在viewPager的onPageSelected方法中通过.getChildAt() 获取某个指定position的view,并对该view进行刷新给当前选中view的指示器小圆点设置选中背景
public void onPageSelected(int position) {
/**
* 通过.getChildAt() 获取某个指定position的view,并对该view进行刷新
* 给当前选中view的指示器小圆点设置选中背景
*/
View view = pointLayout.getChildAt(position%mList.size());
view.setBackgroundResource(R.drawable.guide_blue);
pointLayout.getChildAt(prePosition%mList.size()).setBackgroundResource(R.drawable.guide_gray);
prePosition = position;
}
明天计划的事情:明天能把问题解决了就先解决,解决不了就做其他页面
遇到的问题:第一次进入到推荐页面,viewPager的第一张轮播图对应的对一个指示器没有变为选中,轮播一张后恢复正常
收获:学习到了onPagerChangeListener里的三种方法以及三种方法中的参数含义以及指示器,代码写布局控件
评论