Example usage for android.support.v4.widget NestedScrollView scrollTo

List of usage examples for android.support.v4.widget NestedScrollView scrollTo

Introduction

In this page you can find the example usage for android.support.v4.widget NestedScrollView scrollTo.

Prototype

public void scrollTo(int paramInt1, int paramInt2) 

Source Link

Usage

From source file:com.zzc.androidtrain.view.refresh.Utils.java

public static boolean syncOffset(SmoothAppBarLayout smoothAppBarLayout, View target, int verticalOffset,
        View scroll) {//from  www  .  ja  v  a  2 s  . co  m
    boolean isSelected = target == scroll;
    if (scroll instanceof NestedScrollView) {
        NestedScrollView nestedScrollView = (NestedScrollView) scroll;
        if (nestedScrollView.getScrollY() < verticalOffset || (!isSelected && isScrollToTop(target))) {
            nestedScrollView.scrollTo(0, verticalOffset);
        }
        if (isSelected && (nestedScrollView.getScrollY() < verticalOffset || verticalOffset == 0)) {
            nestedScrollView.scrollTo(0, 0);
            smoothAppBarLayout.syncOffset(0);
        }
    } else if (scroll instanceof RecyclerView) {
        RecyclerView recyclerView = (RecyclerView) scroll;
        boolean isAccuracy = recyclerView.getLayoutManager()
                .findViewByPosition(ObservableRecyclerView.HEADER_VIEW_POSITION) != null;
        if (isAccuracy && recyclerView.computeVerticalScrollOffset() < verticalOffset) {
            recyclerView.scrollBy(0, verticalOffset - recyclerView.computeVerticalScrollOffset());
        } else if (!isSelected && isScrollToTop(target)) {
            recyclerView.scrollToPosition(ObservableRecyclerView.HEADER_VIEW_POSITION);
        }
        if (isAccuracy && isSelected
                && (recyclerView.computeVerticalScrollOffset() < verticalOffset || verticalOffset == 0)) {
            recyclerView.scrollToPosition(ObservableRecyclerView.HEADER_VIEW_POSITION);
            smoothAppBarLayout.syncOffset(0);
        }
    }
    return true;
}