private int getOrientation(androidx.recyclerview.widget.RecyclerView parent) { if (parent.getLayoutManager() instanceof LinearLayoutManager) { LinearLayoutManager layoutManager = (LinearLayoutManager) parent.getLayoutManager(); return layoutManager.getOrientation(); } else { throw new IllegalStateException( "DividerItemDecoration can only be used with a LinearLayoutManager."); } }
public static int findLastCompletelyVisibleItemPosition(@NonNull RecyclerView rv) { RecyclerView.LayoutManager layoutManager = rv.getLayoutManager(); if (layoutManager instanceof LinearLayoutManager) { return (((LinearLayoutManager) layoutManager).findLastCompletelyVisibleItemPosition()); } else { return RecyclerView.NO_POSITION; } }
public SwapTargetItemOperator(RecyclerView recyclerView, RecyclerView.ViewHolder draggingItem, DraggingItemInfo draggingItemInfo) { super(recyclerView, draggingItem); mDraggingItemInfo = draggingItemInfo; CustomRecyclerViewUtils.getDecorationOffsets( mRecyclerView.getLayoutManager(), mDraggingItemViewHolder.itemView, mDraggingItemDecorationOffsets); }
public static int findFirstCompletelyVisibleItemPosition(@NonNull RecyclerView rv) { RecyclerView.LayoutManager layoutManager = rv.getLayoutManager(); if (layoutManager instanceof LinearLayoutManager) { return (((LinearLayoutManager) layoutManager).findFirstCompletelyVisibleItemPosition()); } else { return RecyclerView.NO_POSITION; } }
private static boolean getClipToPadding(RecyclerView rv) { return rv.getLayoutManager().getClipToPadding(); }
public static int getLayoutType(@NonNull RecyclerView rv) { return getLayoutType(rv.getLayoutManager()); }
public static int getOrientation(@NonNull RecyclerView rv) { return getOrientation(rv.getLayoutManager()); }
public boolean isHeader(View child, RecyclerView parent) { int viewType = parent.getLayoutManager().getItemViewType(child); return viewType == headerViewType; }
@Override public void onDetachedFromRecyclerView(RecyclerView recyclerView) { super.onDetachedFromRecyclerView(recyclerView); if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { GridLayoutManager gridManager = (GridLayoutManager) recyclerView.getLayoutManager(); gridManager.setSpanSizeLookup(originalSpanLookup); originalSpanLookup = null; spanCount = 1; } }
public static int findFirstVisibleItemPosition(@NonNull RecyclerView rv, boolean includesPadding) { RecyclerView.LayoutManager layoutManager = rv.getLayoutManager(); if (layoutManager instanceof LinearLayoutManager) { if (includesPadding) { return findFirstVisibleItemPositionIncludesPadding((LinearLayoutManager) layoutManager); } else { return (((LinearLayoutManager) layoutManager).findFirstVisibleItemPosition()); } } else { return RecyclerView.NO_POSITION; } }
public static int findLastVisibleItemPosition(@NonNull RecyclerView rv, boolean includesPadding) { RecyclerView.LayoutManager layoutManager = rv.getLayoutManager(); if (layoutManager instanceof LinearLayoutManager) { if (includesPadding) { return findLastVisibleItemPositionIncludesPadding((LinearLayoutManager) layoutManager); } else { return (((LinearLayoutManager) layoutManager).findLastVisibleItemPosition()); } } else { return RecyclerView.NO_POSITION; } }
public static int getSpanCount(@NonNull RecyclerView rv) { RecyclerView.LayoutManager layoutManager = rv.getLayoutManager(); if (layoutManager instanceof GridLayoutManager) { return ((GridLayoutManager) layoutManager).getSpanCount(); } else if (layoutManager instanceof StaggeredGridLayoutManager) { return ((StaggeredGridLayoutManager) layoutManager).getSpanCount(); } else { return 1; } }
private int getSnappedPosition(RecyclerView recyclerView) { RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); if (layoutManager instanceof LinearLayoutManager) { if (gravity == Gravity.START || gravity == Gravity.TOP) { return ((LinearLayoutManager) layoutManager).findFirstCompletelyVisibleItemPosition(); } else if (gravity == Gravity.END || gravity == Gravity.BOTTOM) { return ((LinearLayoutManager) layoutManager).findLastCompletelyVisibleItemPosition(); } } return RecyclerView.NO_POSITION; }
private int getListLeft(RecyclerView view) { if (view.getLayoutManager().getClipToPadding()) { return view.getPaddingLeft(); } else { return 0; } } }
@Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { GridLayoutManager gridManager = (GridLayoutManager) recyclerView.getLayoutManager(); spanCount = gridManager.getSpanCount(); originalSpanLookup = gridManager.getSpanSizeLookup(); gridManager.setSpanSizeLookup(spanSizes); } }
private int getListTop(RecyclerView view) { if (view.getLayoutManager().getClipToPadding()) { return view.getPaddingTop(); } else { return 0; } }
@Override public void onDrawOver(Canvas canvas, RecyclerView parent, RecyclerView.State state) { if (parent.isAnimating()) return; final int childCount = parent.getChildCount(); final RecyclerView.LayoutManager lm = parent.getLayoutManager(); for (int i = 0; i < childCount; i++) { final View child = parent.getChildAt(i); RecyclerView.ViewHolder viewHolder = parent.getChildViewHolder(child); if (viewHolder instanceof Divided) { final int right = lm.getDecoratedRight(child); final int bottom = lm.getDecoratedBottom(child); // draw the bottom divider canvas.drawRect(lm.getDecoratedLeft(child), bottom - dividerSize, right, bottom, paint); // draw the right edge divider canvas.drawRect(right - dividerSize, lm.getDecoratedTop(child), right, bottom - dividerSize, paint); } } }
private void createIndicators() { removeAllViews(); RecyclerView.Adapter adapter = mRecyclerView.getAdapter(); int count; if (adapter == null || (count = adapter.getItemCount()) <= 0) { return; } createIndicators(count, getSnapPosition(mRecyclerView.getLayoutManager())); }
/** * Start the dialog and display it on screen. The window is placed in the * application layer and opaque. Note that you should not override this * method to do initialization when the dialog is shown, instead implement * that in {@link #onStart}. */ public void show() { if (mRecyclerView.getLayoutManager() == null) { mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); } initAdapterIfNeeded(); super.show(); }
/** * Start the dialog and display it on screen. The window is placed in the * application layer and opaque. Note that you should not override this * method to do initialization when the dialog is shown, instead implement * that in {@link #onStart}. */ public void show() { if (mRecyclerView.getLayoutManager() == null) { mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); } initAdapterIfNeeded(); super.show(); }