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:com.ldxx.xxbase.view.SwipeRefreshLayout.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  2s  .co  m*/
public boolean canChildScrollUp() {
    if (mTarget instanceof RecyclerView) {
        final RecyclerView recyclerView = (RecyclerView) mTarget;
        RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
        if (layoutManager instanceof LinearLayoutManager) {
            int position = ((LinearLayoutManager) layoutManager).findFirstCompletelyVisibleItemPosition();
            return position != 0;
        } else if (layoutManager instanceof StaggeredGridLayoutManager) {
            int[] positions = ((StaggeredGridLayoutManager) layoutManager)
                    .findFirstCompletelyVisibleItemPositions(null);
            for (int i = 0; i < positions.length; i++) {
                if (positions[i] == 0) {
                    return false;
                }
            }
        }
        return true;
    } else 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 ViewCompat.canScrollVertically(mTarget, -1) || mTarget.getScrollY() > 0;
        }
    } else {
        return ViewCompat.canScrollVertically(mTarget, -1);
    }
}

From source file:android.support.v7.app.AlertController.java

private static void manageScrollIndicators(View v, View upIndicator, View downIndicator) {
    if (upIndicator != null) {
        upIndicator.setVisibility(ViewCompat.canScrollVertically(v, -1) ? View.VISIBLE : View.INVISIBLE);
    }/*from ww w  . j a v  a2s  . c o m*/
    if (downIndicator != null) {
        downIndicator.setVisibility(ViewCompat.canScrollVertically(v, 1) ? View.VISIBLE : View.INVISIBLE);
    }
}

From source file:com.ray.appchallenge.view.SwipeRefreshLayoutBottom.java

public boolean canChildScrollDown() { // TODO
    if (android.os.Build.VERSION.SDK_INT < 14) {
        if (mTarget instanceof AbsListView) {
            final AbsListView absListView = (AbsListView) mTarget;
            try {
                if (absListView.getCount() > 0) {
                    if (absListView.getLastVisiblePosition() + 1 == absListView.getCount()) {
                        int lastIndex = absListView.getLastVisiblePosition()
                                - absListView.getFirstVisiblePosition();
                        return absListView.getChildAt(lastIndex).getBottom() == absListView.getPaddingBottom();
                    }//from   w  ww .jav a  2  s .  c  om
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

            return true;
        } else {
            return true;
        }
    } else {
        return ViewCompat.canScrollVertically(mTarget, 1);
    }
}

From source file:ch.tutti.android.bottomsheet.ResolverDrawerLayout.java

public boolean canChildScrollUp() {
    if (mScrollableChildView != null) {
        if (android.os.Build.VERSION.SDK_INT < 14) {
            if (mScrollableChildView instanceof AbsListView) {
                final AbsListView absListView = (AbsListView) mScrollableChildView;
                return absListView.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0
                        || absListView.getChildAt(0).getTop() < absListView.getPaddingTop());
            } else if (RECYCLERVIEW_CLASS_NAME.equals(mScrollableChildView.getClass().getName())) {
                final RecyclerView recyclerView = (RecyclerView) mScrollableChildView;
                View firstView = recyclerView.getChildAt(0);
                return recyclerView.getChildCount() > 0
                        && (recyclerView.getLayoutManager().getPosition(firstView) > 0
                                || recyclerView.getChildAt(0).getTop() < recyclerView.getPaddingTop());
            } else {
                return mScrollableChildView.getScrollY() > 0;
            }/*from www. j  a  va2s  .  co m*/
        } else {
            return ViewCompat.canScrollVertically(mScrollableChildView, -1);
        }
    }
    return false;
}

From source file:com.juyujuyu.SwipeLoadLayout.java

public boolean canChildScrollDown() {
    return ViewCompat.canScrollVertically(mTarget, 1);
}

From source file:android.theporouscity.com.flagging.SwipeRefreshLayoutBottom.java

public boolean canChildScrollDown() { // TODO
    if (android.os.Build.VERSION.SDK_INT < 14) {
        if (mTarget instanceof AbsListView) {
            final AbsListView absListView = (AbsListView) mTarget;
            try {
                if (absListView.getCount() > 0) {
                    if (absListView.getLastVisiblePosition() + 1 == absListView.getCount()) {
                        int lastIndex = absListView.getLastVisiblePosition()
                                - absListView.getFirstVisiblePosition();
                        return absListView.getChildAt(lastIndex).getBottom() == absListView.getPaddingBottom();
                    }//from   www  .  ja v  a2s.  c o  m
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return true;
        } else {
            return true;
        }
    } else {
        return ViewCompat.canScrollVertically(mTarget, 1); // TODO janky with collapsing toolbar etc
    }
}

From source file:anabolicandroids.chanobol.util.swipebottom.SwipeRefreshLayoutBottom.java

public boolean canChildScrollDown() { // TODO
    if (android.os.Build.VERSION.SDK_INT < 14) {
        if (mTarget instanceof AbsListView) {
            final AbsListView absListView = (AbsListView) mTarget;
            try {
                if (absListView.getCount() > 0) {
                    if (absListView.getLastVisiblePosition() + 1 == absListView.getCount()) {
                        int lastIndex = absListView.getLastVisiblePosition()
                                - absListView.getFirstVisiblePosition();
                        return absListView.getChildAt(lastIndex).getBottom() == absListView.getPaddingBottom();
                    }//from   w ww . j a  va2  s. c om
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return true;
        } else {
            return true;
        }
    } else {
        return ViewCompat.canScrollVertically(mTarget, 1);
    }
}

From source file:com.scanor.refresh.RefreshLayout.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.
 *//*  w  ww . j  a  v  a2s . co  m*/
public boolean canChildScrollFromTop() {
    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 ViewCompat.canScrollVertically(mTarget, -1) || mTarget.getScrollY() > 0;
        }
    } else {
        return ViewCompat.canScrollVertically(mTarget, -1);
    }
}

From source file:com.melolchik.bullshitbingo.ui.views.swipe.BottomSwipeRefreshLayout.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 ww.java2s  . co m
public boolean canChildScrollDown() {
    if (mChildScrollUpCallback != null) {
        return mChildScrollUpCallback.canChildScrollUp(this, mTarget);
    }
    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 ViewCompat.canScrollVertically(mTarget, 1) || mTarget.getScrollY() > 0;
        }
    } else {
        return ViewCompat.canScrollVertically(mTarget, 1);
    }
}

From source file:com.hiyjeain.android.DevBase.widget.DoubleSwipeRefreshLayout.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 . c o  m
public boolean canChildScrollUp() {
    if (mTarget instanceof ReverseSwipeRefreshLayout) {
        return ((ReverseSwipeRefreshLayout) mTarget).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);
    }
}