TabLayoutManager.java 文件源码

java
阅读 30 收藏 0 点赞 0 评论 0

项目:InfiniteTabsView 作者:
/**
 * Fill right of the center view
 *
 * @param recycler
 * @param startPosition start position to fill right
 * @param startOffset   layout start offset
 * @param rightEdge
 */
private void fillRight(RecyclerView.Recycler recycler, int startPosition, int startOffset, int rightEdge) {
    View scrap;
    int topOffset;
    int scrapWidth, scrapHeight;
    Rect scrapRect = new Rect();
    int height = getVerticalSpace();
    for (int i = startPosition; i < getItemCount() && startOffset < rightEdge; i++) {
        scrap = recycler.getViewForPosition(i);
        addView(scrap);
        measureChildWithMargins(scrap, 0, 0);
        scrapWidth = getDecoratedMeasuredWidth(scrap);
        scrapHeight = getDecoratedMeasuredHeight(scrap);
        topOffset = (int) (getPaddingTop() + (height - scrapHeight) / 2.0f);
        scrapRect.set(startOffset, topOffset, startOffset + scrapWidth, topOffset + scrapHeight);
        layoutDecorated(scrap, scrapRect.left, scrapRect.top, scrapRect.right, scrapRect.bottom);
        startOffset = scrapRect.right;
        mLastVisiblePos = i;
        if (getState().mItemsFrames.get(i) == null) {
            getState().mItemsFrames.put(i, scrapRect);
        } else {
            getState().mItemsFrames.get(i).set(scrapRect);
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号