Files
MoGoEagleEye/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/RecyclerViewProxy.java
2020-03-11 20:33:24 +08:00

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();
}
}