@Override
public boolean onNestedPreFling(CoordinatorLayout coordinatorLayout, final View child, View target, float velocityX, float velocityY) {
if (target instanceof RecyclerView) {
if (!mPinInizialized)
initPin(child);
if (child.getVisibility() == View.INVISIBLE)
child.setVisibility(View.VISIBLE);
mCurrentDirection = velocityY > 0 ? DIRECTION_UP : DIRECTION_DOWN;
((RecyclerView) target).clearOnScrollListeners();
((RecyclerView) target).addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
updateView(child, recyclerView, dy);
}
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
if (recyclerView.computeVerticalScrollOffset() == 0) {
mVerticalScrollOffset = 0;
child.setVisibility(View.INVISIBLE);
}
updatePinContent(child);
recyclerView.clearOnScrollListeners();
}
}
});
}
return false;
}