108 lines
3.1 KiB
Java
108 lines
3.1 KiB
Java
package com.yarolegovich.discretescrollview;
|
|
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
/**
|
|
* Created by yarolegovich on 10/25/17.
|
|
*/
|
|
public class RecyclerViewProxy {
|
|
|
|
private RecyclerView.LayoutManager layoutManager;
|
|
|
|
public RecyclerViewProxy(@NonNull RecyclerView.LayoutManager layoutManager) {
|
|
this.layoutManager = layoutManager;
|
|
}
|
|
|
|
public void attachView(View view) {
|
|
layoutManager.attachView(view);
|
|
}
|
|
|
|
public void detachView(View view) {
|
|
layoutManager.detachView(view);
|
|
}
|
|
|
|
public void detachAndScrapView(View view, RecyclerView.Recycler recycler) {
|
|
layoutManager.detachAndScrapView(view, recycler);
|
|
}
|
|
|
|
public void detachAndScrapAttachedViews(RecyclerView.Recycler recycler) {
|
|
layoutManager.detachAndScrapAttachedViews(recycler);
|
|
}
|
|
|
|
public void recycleView(View view, RecyclerView.Recycler recycler) {
|
|
recycler.recycleView(view);
|
|
}
|
|
|
|
public void removeAndRecycleAllViews(RecyclerView.Recycler recycler) {
|
|
layoutManager.removeAndRecycleAllViews(recycler);
|
|
}
|
|
|
|
public int getChildCount() {
|
|
return layoutManager.getChildCount();
|
|
}
|
|
|
|
public int getItemCount() {
|
|
return layoutManager.getItemCount();
|
|
}
|
|
|
|
public View getMeasuredChildForAdapterPosition(int position, RecyclerView.Recycler recycler) {
|
|
View view = recycler.getViewForPosition(position);
|
|
layoutManager.addView(view);
|
|
layoutManager.measureChildWithMargins(view, 0, 0);
|
|
return view;
|
|
}
|
|
|
|
public void layoutDecoratedWithMargins(View v, int left, int top, int right, int bottom) {
|
|
layoutManager.layoutDecoratedWithMargins(v, left, top, right, bottom);
|
|
}
|
|
|
|
public View getChildAt(int index) {
|
|
return layoutManager.getChildAt(index);
|
|
}
|
|
|
|
public int getPosition(View view) {
|
|
return layoutManager.getPosition(view);
|
|
}
|
|
|
|
public int getMeasuredWidthWithMargin(View child) {
|
|
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) child.getLayoutParams();
|
|
return layoutManager.getDecoratedMeasuredWidth(child) + lp.leftMargin + lp.rightMargin;
|
|
}
|
|
|
|
public int getMeasuredHeightWithMargin(View child) {
|
|
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) child.getLayoutParams();
|
|
return layoutManager.getDecoratedMeasuredHeight(child) + lp.topMargin + lp.bottomMargin;
|
|
}
|
|
|
|
public int getWidth() {
|
|
return layoutManager.getWidth();
|
|
}
|
|
|
|
public int getHeight() {
|
|
return layoutManager.getHeight();
|
|
}
|
|
|
|
public void offsetChildrenHorizontal(int amount) {
|
|
layoutManager.offsetChildrenHorizontal(amount);
|
|
}
|
|
|
|
public void offsetChildrenVertical(int amount) {
|
|
layoutManager.offsetChildrenVertical(amount);
|
|
}
|
|
|
|
public void requestLayout() {
|
|
layoutManager.requestLayout();
|
|
}
|
|
|
|
public void startSmoothScroll(RecyclerView.SmoothScroller smoothScroller) {
|
|
layoutManager.startSmoothScroll(smoothScroller);
|
|
}
|
|
|
|
public void removeAllViews() {
|
|
layoutManager.removeAllViews();
|
|
}
|
|
}
|