Example usage for android.support.v4.view ViewCompat canScrollVertically

List of usage examples for android.support.v4.view ViewCompat canScrollVertically

Introduction

In this page you can find the example usage for android.support.v4.view ViewCompat canScrollVertically.

Prototype

public static boolean canScrollVertically(View v, int direction) 

Source Link

Document

Check if this view can be scrolled vertically in a certain direction.

Usage

From source file:me.ele.backviewlayout.BackViewLayout.java

/**
 * @return Whether it is possible for the child view of this layout to
 * scroll up. Override this if the child view is a custom view.
 *///from w  w  w .jav a2s .c  om
private boolean canChildScrollUp() {
    if (android.os.Build.VERSION.SDK_INT < 14) {
        if (mTarget instanceof AbsListView) {
            final AbsListView absListView = (AbsListView) mTarget;
            return absListView.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0
                    || absListView.getChildAt(0).getTop() < absListView.getPaddingTop());
        } else {
            return mTarget.getScrollY() > 0;
        }
    } else {
        return ViewCompat.canScrollVertically(mTarget, -1);
    }
}

From source file:com.example.tt.pullrefresh.widget.HeaderRefreshLayout.java

public boolean canChildScrollUp() {
    //        if (mChildScrollUpCallback != null) {
    //            return mChildScrollUpCallback.canChildScrollUp(this, mTarget);
    //        }/*from w w  w  .j ava  2s.c om*/
    if (targetView == null) {
        throw new RuntimeException("Should init targetView at first!");
    }
    if (android.os.Build.VERSION.SDK_INT < 14) {
        if (targetView instanceof AbsListView) {
            final AbsListView absListView = (AbsListView) targetView;
            return absListView.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0
                    || absListView.getChildAt(0).getTop() < absListView.getPaddingTop());
        } else {
            return ViewCompat.canScrollVertically(targetView, -1) || targetView.getScrollY() > 0;
        }
    } else {
        return ViewCompat.canScrollVertically(targetView, -1);
    }
}

From source file:xyz.hanks.nestedwebview.SSScrollView.java

@Override
public void onNestedPreScroll(View target, int dx, int dy, int[] consumed) {

    Log.e("......", "........." + ViewCompat.canScrollVertically(target, -1));
    dispatchNestedPreScroll(dx, dy, consumed, null);
}

From source file:com.google.samples.apps.iosched.ui.BaseScheduleActivity.java

@Override
public boolean canSwipeRefreshChildScrollUp() {
    if (mWideMode) {
        return ViewCompat.canScrollVertically(mScrollViewWide, -1);
    }// ww w. j a  v  a 2s .  c o m

    for (MyScheduleFragment fragment : mMyScheduleFragments) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
            if (!fragment.getUserVisibleHint()) {
                continue;
            }
        }

        return ViewCompat.canScrollVertically(fragment.getListView(), -1);
    }

    return false;
}

From source file:com.lixplor.rocketpulltorefresh.RefreshLayout.java

/**
 * Evaluate if this should intercept touch event to enable pull actions
 * @param ev MotionEvent//ww w  .  j a v  a 2s.  c om
 * @param contentView content view to help evaluate
 * @return true if intercepts; false otherwise
 */
private boolean shouldInterceptTouchEvent(MotionEvent ev, View contentView) {
    boolean shouldIntercept;
    switch (ev.getAction()) {
    case MotionEvent.ACTION_DOWN:
    case MotionEvent.ACTION_POINTER_DOWN:
        mInterceptDownY = ev.getRawY();
        break;
    case MotionEvent.ACTION_MOVE:
        mInterceptMoveY = ev.getRawY();
        mLastTouchRawY = mInterceptMoveY;
        if (Math.abs(mInterceptMoveY - mInterceptDownY) > mTouchSlop) {
            if (mEnableRefresh && mInterceptMoveY - mInterceptDownY > 0) {
                // pull down, evaluate if content view is at top
                shouldIntercept = !ViewCompat.canScrollVertically(contentView, -1);
                return shouldIntercept;
            } else if (mEnableLoadMore && mInterceptMoveY - mInterceptDownY < 0) {
                // pull up, evaluate if content view is at bottom
                shouldIntercept = !ViewCompat.canScrollVertically(contentView, 1);
                return shouldIntercept;
            }
        }
        break;
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_CANCEL:
        break;
    }
    return super.onInterceptTouchEvent(ev);
}

From source file:com.demos.support_23_2.MyBottomBehavior.java

@Override
public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dx, int dy,
        int[] consumed) {
    View scrollingChild = mNestedScrollingChildRef.get();
    if (target != scrollingChild) {
        return;// w  w  w  .j a  va  2 s. com
    }
    int currentTop = child.getTop();
    int newTop = currentTop - dy;
    if (dy > 0) { // Upward

        if (newTop < mMinOffset) {
            consumed[1] = currentTop - mMinOffset;
            ViewCompat.offsetTopAndBottom(child, -consumed[1]);
            setStateInternal(STATE_EXPANDED);
        } else {
            consumed[1] = dy;
            ViewCompat.offsetTopAndBottom(child, -dy);
            setStateInternal(STATE_DRAGGING);
        }
    } else if (dy < 0) { // Downward
        if (!ViewCompat.canScrollVertically(target, -1)) {
            if (newTop <= mMaxOffset || mHideable) {
                consumed[1] = dy;
                ViewCompat.offsetTopAndBottom(child, -dy);
                setStateInternal(STATE_DRAGGING);
            } else {
                consumed[1] = currentTop - mMaxOffset;
                ViewCompat.offsetTopAndBottom(child, -consumed[1]);
                setStateInternal(STATE_COLLAPSED);
            }
        }
    }
    dispatchOnSlide(child.getTop());
    mLastNestedScrollDy = dy;
    mNestedScrolled = true;
}

From source file:com.taobao.luaview.view.widget.SuperSwipeRefreshLayout.java

/**
 * View?-?//from  w  w w  .  j a v a 2s  .c o m
 *
 * @return
 */
public boolean isChildScrollToTop() {
    if (Build.VERSION.SDK_INT < 14) {
        if (((ViewGroup) mTarget).getChildAt(0) instanceof AbsListView) {
            final AbsListView absListView = (AbsListView) ((ViewGroup) mTarget).getChildAt(0);
            return !(absListView.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0
                    || absListView.getChildAt(0).getTop() < absListView.getPaddingTop()));
        } else {
            return !(((ViewGroup) mTarget).getChildAt(0).getScrollY() > 0);
        }
    } else {
        return !ViewCompat.canScrollVertically(((ViewGroup) mTarget).getChildAt(0), -1);
    }
}

From source file:com.recyclerviewpulldownrefresh.view.refresh.AbPullToRefreshView.java

/**
 * ??//from  w  w w.  j  a  v  a2s  .com
 *
 * @return
 */
public boolean canChildScrollUp() {
    // ???
    if (!mEnablePullRefresh) {
        return false;
    }

    if (mTarget instanceof AdapterView<?>) {
        final AdapterView<?> absListView = (AdapterView<?>) mTarget;
        View child = absListView.getChildAt(0);
        if (child == null) {
            return true;
        }
        if (absListView.getFirstVisiblePosition() == 0 && child.getTop() == 0) {
            return true;
        }

        int top = child.getTop();
        int padding = absListView.getPaddingTop();
        if (absListView.getFirstVisiblePosition() == 0 && Math.abs(top - padding) <= 11) {
            return true;
        }
        return false;
    } else if (mTarget instanceof ScrollView) {
        return mScrollView.getScrollY() == 0;
    } else if (mTarget instanceof WebView) {
        WebView webView = (WebView) mTarget;
        if (webView != null) {
            return webView.getScrollY() == 0;
        }
        return false;
    } else if (mTarget instanceof RecyclerView) {
        int firstVisiblePosition = 0;

        RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
        View childView = layoutManager.getChildAt(0);
        if (null == childView) {
            return true;
        }

        if (layoutManager instanceof LinearLayoutManager) {
            firstVisiblePosition = ((LinearLayoutManager) layoutManager).findFirstVisibleItemPosition();
        } else if (layoutManager instanceof GridLayoutManager) {
            firstVisiblePosition = ((GridLayoutManager) layoutManager).findFirstVisibleItemPosition();
        } else if (layoutManager instanceof StaggeredGridLayoutManager) {
            int[] spanPosition = new int[((StaggeredGridLayoutManager) layoutManager).getSpanCount()];
            ((StaggeredGridLayoutManager) layoutManager).findFirstVisibleItemPositions(spanPosition);
            firstVisiblePosition = getFirstVisibleItemPosition(spanPosition);
        }

        if (childView.getTop() == 0 && firstVisiblePosition == 0) {
            return true;
        }
        return false;
    } else {
        return ViewCompat.canScrollVertically(mTarget, 1);
    }
}

From source file:me.xiaopan.android.widget.PullRefreshLayout.java

/**
 * @return Whether it is possible for the child view of this layout to
 *         scroll up. Override this if the child view is a custom view.
 *//*from   w w w . j  a  v a  2 s  . co  m*/
private boolean canChildScrollUp() {
    if (android.os.Build.VERSION.SDK_INT < 14) {
        if (targetView instanceof AbsListView) {
            final AbsListView absListView = (AbsListView) targetView;
            return absListView.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0
                    || absListView.getChildAt(0).getTop() < absListView.getPaddingTop());
        } else {
            return targetView.getScrollY() > 0;
        }
    } else {
        return ViewCompat.canScrollVertically(targetView, -1);
    }
}

From source file:com.aiga.events.android.views.NoScrollSwipeRefreshLayout.java

/**
 * @return Whether it is possible for the child view of this layout to
 *         scroll up. Override this if the child view is a custom view.
 *///from   w w w .ja  v  a 2  s. com
public boolean canChildScrollUp() {
    if (android.os.Build.VERSION.SDK_INT < 14) {
        if (mTarget instanceof AbsListView) {
            final AbsListView absListView = (AbsListView) mTarget;
            return absListView.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0
                    || absListView.getChildAt(0).getTop() < absListView.getPaddingTop());
        }

        return mTarget.getScrollY() > 0;
    }
    return ViewCompat.canScrollVertically(mTarget, -1);
}