问答详情
源自:2-4 利用scrollTo、scrollBy完成轮播图的手动轮播

轮播图显示不全

我弄了4张图片轮播,为什么只有两张显示

提问者:慕粉1837076732 2017-08-03 10:53

个回答

  • 慕粉1853313419
    2017-08-07 21:58:22

    感觉你应该是测量那部分代码写错了或者漏写了;代码如下:

    @Override
     //测量,先测量子视图的宽度和高度,然后求出ViewGroup的宽度和高度和
      protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
       // TODO Auto-generated method stub
       super.onMeasure(widthMeasureSpec, heightMeasureSpec);
       //1.求出子视图的个数
       
        children=getChildCount();
       //2.求出子视图的宽和高
       if(children==0){
        setMeasuredDimension(0, 0); //重新设置宽高
       }else{
        measureChildren(widthMeasureSpec, heightMeasureSpec);
        //viewgroup的高度就是第一个子视图的高度,宽度就是所有子视图宽度之和
        View view=getChildAt(0);
        //3.求出ViewGroup的宽和高
        view_height=view.getMeasuredHeight();
        view_width=view.getMeasuredWidth();
        int width=view_width*children;//ViewGroup的总宽度
        setMeasuredDimension(width, view_height);
        
       }
      }