当前位置: 首页>>代码示例>>Java>>正文


Java RecyclerView.State方法代码示例

本文整理汇总了Java中android.support.v7.widget.RecyclerView.State方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.State方法的具体用法?Java RecyclerView.State怎么用?Java RecyclerView.State使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.support.v7.widget.RecyclerView的用法示例。


在下文中一共展示了RecyclerView.State方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: onDraw

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override public void onDraw(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
  boolean isReverseLayout = getIsReverseLayout(parent);
  int childCount = parent.getChildCount();
  for (int i = 0; i < childCount; i++) {
    View child = parent.getChildAt(i);
    int adapterPosition = parent.getChildAdapterPosition(child);
    if (adapterPosition < 0) {
      return;
    }
    ItemBinder binder = adapter.getBinderForPosition(adapterPosition);
    if (binder.isItemDecorationEnabled()) {
      int itemPosition = adapter.getItemPositionInManager(parent.getChildAdapterPosition(child));
      int positionType = getPositionType(parent, adapterPosition, itemPosition, isReverseLayout);
      binder.onDraw(canvas, parent, child, itemPosition, positionType);
    }
  }
}
 
开发者ID:DevAhamed,项目名称:MultiViewAdapter,代码行数:18,代码来源:ItemDecorationManager.java

示例2: computeScrollRange

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private int computeScrollRange(RecyclerView.State state) {
    if (lm.getChildCount() == 0 || state.getItemCount() == 0) {
        return 0;
    }

    if (!lm.isSmoothScrollbarEnabled()) {
        return state.getItemCount();
    }

    int firstVisiblePos = lm.findFirstVisibleItemPosition();
    int lastVisiblePos = lm.findLastVisibleItemPosition();

    // smooth scrollbar enabled. try to estimate better.
    final int laidOutRange = Math.abs(firstVisiblePos - lastVisiblePos) + 1;

    // estimate a size for full list.
    return (int) ((float) getLaidOutArea() / laidOutRange * state.getItemCount());
}
 
开发者ID:sathishmscict,项目名称:ChipsLayoutManager,代码行数:19,代码来源:ScrollingController.java

示例3: getItemOffsets

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView recyclerView, RecyclerView.State state) {
    final RecyclerView.ViewHolder holder = recyclerView.getChildViewHolder(view);
    final Context context = recyclerView.getContext();

    if(!registered) {
        MaterialViewPagerHelper.registerRecyclerView(context, recyclerView);
        registered = true;
    }

    int headerCells = 1;

    //don't work with stagged
    RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
    if(layoutManager instanceof GridLayoutManager){
        GridLayoutManager gridLayoutManager = (GridLayoutManager)layoutManager;
        headerCells = gridLayoutManager.getSpanCount();
    }

    MaterialViewPagerAnimator animator = MaterialViewPagerHelper.getAnimator(context);
    if (animator != null) {
        if (holder.getAdapterPosition() < headerCells) {
            outRect.top = Math.round(Utils.dpToPx(animator.getHeaderHeight() + 10, context));
        }
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:27,代码来源:MaterialViewPagerHeaderDecorator.java

示例4: getItemOffsets

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {

    int layoutOrientation = getOrientation(parent);
    if (layoutOrientation == LinearLayoutManager.VERTICAL) {
        outRect.top = 10;
        outRect.left=5;
        outRect.right=5;
    } else if(layoutOrientation == LinearLayoutManager.HORIZONTAL) {
        outRect.left = 5;
    }
}
 
开发者ID:yiwent,项目名称:Mobike,代码行数:13,代码来源:CardViewtemDecortion.java

示例5: onDraw

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
    super.onDraw(c, parent, state);
    final int childCount = parent.getChildCount();
    for (int i = 0; i < childCount; i++) {
        final View child = parent.getChildAt(i);
        int position = parent.getChildLayoutPosition(child);
        int column = (position + 1) % 3;
        column  = column == 0 ? mSpanCount : column;

        final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
                .getLayoutParams();
        final int top = child.getBottom() + params.bottomMargin +
                Math.round(ViewCompat.getTranslationY(child));
        final int bottom = top + mDivider.getIntrinsicHeight();
        final int left = child.getRight() + params.rightMargin +
                Math.round(ViewCompat.getTranslationX(child));
        final int right = left + mDivider.getIntrinsicHeight();

        mDivider.setBounds(child.getLeft(), top, right, bottom);
        mDivider.draw(c);

        if(column < mSpanCount) {
            mDivider.setBounds(left, child.getTop(), right, bottom);
            mDivider.draw(c);
        }

    }
}
 
开发者ID:coopese,项目名称:qmui,代码行数:30,代码来源:GridDividerItemDecoration.java

示例6: assignSpans

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private void assignSpans(GridRangeStyle rangeStyle, RecyclerView.Recycler recycler, RecyclerView.State state, int count,
    int consumedSpanCount, boolean layingOutInPrimaryDirection, LayoutManagerHelper helper) {
    int span, spanDiff, start, end, diff;
    // make sure we traverse from min position to max position
    if (layingOutInPrimaryDirection) {
        start = 0;
        end = count;
        diff = 1;
    } else {
        start = count - 1;
        end = -1;
        diff = -1;
    }

    if (helper.getOrientation() == VERTICAL && helper.isDoLayoutRTL()) { // start from last span
        span = consumedSpanCount - 1;
        spanDiff = -1;
    } else {
        span = 0;
        spanDiff = 1;
    }

    for (int i = start; i != end; i += diff) {
        View view = rangeStyle.mSet[i];
        int spanSize = getSpanSize(rangeStyle.mSpanSizeLookup, recycler, state, helper.getPosition(view));
        if (spanDiff == -1 && spanSize > 1) {
            rangeStyle.mSpanIndices[i] = span - (spanSize - 1);
        } else {
            rangeStyle.mSpanIndices[i] = span;
        }
        span += spanDiff * spanSize;
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:34,代码来源:RangeGridLayoutHelper.java

示例7: fill

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * 填充方法
 *
 * @param recycler
 * @param state
 */
private void fill(RecyclerView.Recycler recycler, RecyclerView.State state) {
    if (getItemCount() <= 0 || state.isPreLayout()) {
        return;
    }
    //考虑到当前RecyclerView会处于滑动的状态,所以这里的Rect的作用是展示当前显示的区域
    //需要考虑到RecyclerView的滑动量
    //mHorizontalOffset 横向的滑动偏移量
    //mVerticalOffset  纵向的滑动偏移量
    Rect displayRect = new Rect(0, mVerticalOffset,
            getHorizontalSpace(),
            getVerticalSpace() + mVerticalOffset);

    /**
     * 对这些View进行测量和布局操作
     */
    for (int i = 0; i < getItemCount(); i++) {
        Rect frame = mItemFrames.get(i);
        if (Rect.intersects(displayRect, frame)) {
            View scrap = recycler.getViewForPosition(i);
            addView(scrap);
            //测量子View
            measureChildWithMargins(scrap, 0, 0);
            //布局方法
            layoutDecorated(scrap, frame.left - mHorizontalOffset, frame.top - mVerticalOffset,
                    frame.right - mHorizontalOffset, frame.bottom - mVerticalOffset);
        }
    }
}
 
开发者ID:Vander-liu,项目名称:HexagonRecyclerView,代码行数:35,代码来源:PolygonLayoutManager.java

示例8: onDraw

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
   if (mOrientation == OrientationHelper.HORIZONTAL){
       drawHorizontal(c,parent);
   }else {
       drawVertical(c,parent); 
   }
}
 
开发者ID:Wilshion,项目名称:HeadlineNews,代码行数:9,代码来源:UIDivider.java

示例9: getItemOffsets

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
                           RecyclerView.State state) {
    if (mOrientation == VERTICAL) {
        outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());
    } else {
        outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);
    }
}
 
开发者ID:ximsfei,项目名称:Android-skin-support,代码行数:10,代码来源:CustomDividerItemDecoration.java

示例10: getItemOffsets

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
    if (mOrientation == VERTICAL_LIST) {
        outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());
    } else {
        outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);
    }
}
 
开发者ID:coopese,项目名称:qmui,代码行数:9,代码来源:DividerItemDecoration.java

示例11: getItemOffsets

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
  if (mOrientation == VERTICAL_LIST) {
    outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());
  } else {
    outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);
  }
}
 
开发者ID:tomoya92,项目名称:android-apps,代码行数:9,代码来源:MyRecylerViewAdapter.java

示例12: smoothScrollToPosition

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state,
                                   int position) {
    View firstVisibleChild = recyclerView.getChildAt(0);
    int itemHeight = firstVisibleChild.getHeight();
    int currentPosition = recyclerView.getChildLayoutPosition(firstVisibleChild);
    int distanceInPixels = Math.abs((currentPosition - position) * itemHeight);
    if (distanceInPixels == 0) {
        distanceInPixels = (int) Math.abs(firstVisibleChild.getY());
    }
    SmoothScroller smoothScroller = new SmoothScroller(recyclerView.getContext(), distanceInPixels, duration);
    smoothScroller.setTargetPosition(position);
    startSmoothScroll(smoothScroller);
}
 
开发者ID:hypeapps,项目名称:black-mirror,代码行数:15,代码来源:ScrollingLinearLayoutManager.java

示例13: onLayoutCompleted

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onLayoutCompleted(RecyclerView.State state) {
    super.onLayoutCompleted(state);
    mPendingScrollPosition = -1;
}
 
开发者ID:MCMrARM,项目名称:revolution-irc,代码行数:6,代码来源:ScrollPosLinearLayoutManager.java

示例14: getItemOffsets

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
    outRect.set(0, 0, 0, dividerHeight);
}
 
开发者ID:zongkaili,项目名称:MenuSet,代码行数:5,代码来源:DividerItemDecoration.java

示例15: layoutDisappearingViews

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private void layoutDisappearingViews(
        RecyclerView.Recycler recycler, RecyclerView.State state, int startTop) {
    // TODO
}
 
开发者ID:h4h13,项目名称:RetroMusicPlayer,代码行数:5,代码来源:SpannedGridLayoutManager.java


注:本文中的android.support.v7.widget.RecyclerView.State方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。