发表于: 2016-12-14 22:48:58

1 736


今天完成的事情:今天完成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里的三种方法以及三种方法中的参数含义以及指示器,代码写布局控件


返回列表 返回列表
评论

    分享到