/**
* Register Recycler view for product list tracking. Please call {@link #unregisterView(RecyclerView)}
* after RecyclerView is hided
* @param view RecyclerView instance
* @param timeoutMilliseconds timeout that is used when list is scrolled. Position of product
* is tracked if list has this delay after scrolling or first show-up
* @param itemCallback - callback to provide information about product
*/
public void registerView(@NonNull RecyclerView view, @IntRange(from=0) final long timeoutMilliseconds, @NonNull final ProductListItemCallback itemCallback){
final RecyclerView.LayoutManager layoutManager = view.getLayoutManager();
//we not support others layout managers then LinearLayoutManager
if (!(layoutManager instanceof LinearLayoutManager)) {
WebtrekkLogging.log("Error: not LinearLayouManager isn't supported");
return;
}
mDelayHandler = new Handler();
mScrollListener = new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if (newState == RecyclerView.SCROLL_STATE_IDLE){
initPendingList(recyclerView, timeoutMilliseconds, itemCallback);
}else{
clearPendingEvents();
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
//it equals zero on the first list start in that case start pending
if (dy == 0){
initPendingList(recyclerView, timeoutMilliseconds, itemCallback);
}
}
};
view.addOnScrollListener(mScrollListener);
mOnTouсhEventListener = new RecyclerItemClickListener(view.getContext(), view);
view.addOnItemTouchListener(mOnTouсhEventListener);
initPendingList(view, timeoutMilliseconds, itemCallback);
}
ProductListTracker.java 文件源码
java
阅读 68
收藏 0
点赞 0
评论 0
项目:webtrekk-android-sdk
作者:
评论列表
文章目录