Android中recycle高度的计算

来源:互联网 发布:淘宝买笔记本可靠吗 编辑:程序博客网 时间:2024/06/06 01:38
  1. recyclerView.setLayoutManager(new GridLayoutManager(activity, 3) {  
  2.                 @Override  
  3.                 public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state, int widthSpec, int heightSpec) {  
  4.                     super.onMeasure(recycler, state, widthSpec, heightSpec);  
  5.                     int measuredWidth = recyclerView.getMeasuredWidth();  
  6.                     int measuredHeight = recyclerView.getMeasuredHeight();  
  7.                     int myMeasureHeight = 0;  
  8.                     int count = state.getItemCount();  
  9.                     for (int i = 0; i < count; i++) {  
  10.                         View view = recycler.getViewForPosition(i);  
  11.                         if (view != null) {  
  12.                             if (myMeasureHeight < measuredHeight && i % 3 == 0) {  
  13.                                 RecyclerView.LayoutParams p = (RecyclerView.LayoutParams) view.getLayoutParams();  
  14.                                 int childWidthSpec = ViewGroup.getChildMeasureSpec(widthSpec,  
  15.                                         getPaddingLeft() + getPaddingRight(), p.width);  
  16.                                 int childHeightSpec = ViewGroup.getChildMeasureSpec(heightSpec,  
  17.                                         getPaddingTop() + getPaddingBottom(), p.height);  
  18.                                 view.measure(childWidthSpec, childHeightSpec);  
  19.                                 myMeasureHeight += view.getMeasuredHeight() + p.bottomMargin + p.topMargin;  
  20.                             }  
  21.                             recycler.recycleView(view);  
  22.                         }  
  23.                     }  
  24. //                    Log.i("Height", "" + Math.min(measuredHeight, myMeasureHeight));  
  25.                     setMeasuredDimension(measuredWidth, Math.min(measuredHeight, myMeasureHeight));  
  26.                 }  


0
0 0
原创粉丝点击