android.support.v4.view.ViewCompat#getOverScrollMode ( )源码实例Demo

下面列出了android.support.v4.view.ViewCompat#getOverScrollMode ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: letv   文件: NestedScrollView.java
public void computeScroll() {
    boolean canOverscroll = true;
    if (this.mScroller.computeScrollOffset()) {
        int oldX = getScrollX();
        int oldY = getScrollY();
        int x = this.mScroller.getCurrX();
        int y = this.mScroller.getCurrY();
        if (oldX != x || oldY != y) {
            int range = getScrollRange();
            int overscrollMode = ViewCompat.getOverScrollMode(this);
            if (overscrollMode != 0 && (overscrollMode != 1 || range <= 0)) {
                canOverscroll = false;
            }
            overScrollByCompat(x - oldX, y - oldY, oldX, oldY, 0, range, 0, 0, false);
            if (canOverscroll) {
                ensureGlows();
                if (y <= 0 && oldY > 0) {
                    this.mEdgeGlowTop.onAbsorb((int) this.mScroller.getCurrVelocity());
                } else if (y >= range && oldY < range) {
                    this.mEdgeGlowBottom.onAbsorb((int) this.mScroller.getCurrVelocity());
                }
            }
        }
    }
}
 
源代码2 项目: letv   文件: NestedScrollView.java
private void ensureGlows() {
    if (ViewCompat.getOverScrollMode(this) == 2) {
        this.mEdgeGlowTop = null;
        this.mEdgeGlowBottom = null;
    } else if (this.mEdgeGlowTop == null) {
        Context context = getContext();
        this.mEdgeGlowTop = new EdgeEffectCompat(context);
        this.mEdgeGlowBottom = new EdgeEffectCompat(context);
    }
}
 
源代码3 项目: MyBlogDemo   文件: NestedScrollView.java
@Override
public void computeScroll() {
    if (mScroller.computeScrollOffset()) {
        int oldX = getScrollX();
        int oldY = getScrollY();
        int x = mScroller.getCurrX();
        int y = mScroller.getCurrY();

        if (oldX != x || oldY != y) {
            final int range = getScrollRange();
            final int overscrollMode = ViewCompat.getOverScrollMode(this);
            final boolean canOverscroll = overscrollMode == ViewCompat.OVER_SCROLL_ALWAYS ||
                    (overscrollMode == ViewCompat.OVER_SCROLL_IF_CONTENT_SCROLLS && range > 0);

            overScrollByCompat(x - oldX, y - oldY, oldX, oldY, 0, range,
                    0, 0, false);

            if (canOverscroll) {
                ensureGlows();
                if (y <= 0 && oldY > 0) {
                    mEdgeGlowTop.onAbsorb((int) mScroller.getCurrVelocity());
                } else if (y >= range && oldY < range) {
                    mEdgeGlowBottom.onAbsorb((int) mScroller.getCurrVelocity());
                }
            }
        }
    }
}
 
源代码4 项目: letv   文件: NestedScrollView.java
boolean overScrollByCompat(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
    int overScrollMode = ViewCompat.getOverScrollMode(this);
    boolean canScrollHorizontal = computeHorizontalScrollRange() > computeHorizontalScrollExtent();
    boolean canScrollVertical = computeVerticalScrollRange() > computeVerticalScrollExtent();
    boolean overScrollHorizontal = overScrollMode == 0 || (overScrollMode == 1 && canScrollHorizontal);
    boolean overScrollVertical = overScrollMode == 0 || (overScrollMode == 1 && canScrollVertical);
    int newScrollX = scrollX + deltaX;
    if (!overScrollHorizontal) {
        maxOverScrollX = 0;
    }
    int newScrollY = scrollY + deltaY;
    if (!overScrollVertical) {
        maxOverScrollY = 0;
    }
    int left = -maxOverScrollX;
    int right = maxOverScrollX + scrollRangeX;
    int top = -maxOverScrollY;
    int bottom = maxOverScrollY + scrollRangeY;
    boolean clampedX = false;
    if (newScrollX > right) {
        newScrollX = right;
        clampedX = true;
    } else if (newScrollX < left) {
        newScrollX = left;
        clampedX = true;
    }
    boolean clampedY = false;
    if (newScrollY > bottom) {
        newScrollY = bottom;
        clampedY = true;
    } else if (newScrollY < top) {
        newScrollY = top;
        clampedY = true;
    }
    if (clampedY) {
        this.mScroller.springBack(newScrollX, newScrollY, 0, 0, 0, getScrollRange());
    }
    onOverScrolled(newScrollX, newScrollY, clampedX, clampedY);
    if (clampedX || clampedY) {
        return true;
    }
    return false;
}
 
@SuppressWarnings("UnusedDeclaration")
public WrappingLinearLayoutManager(RecyclerView view) {
    super(view.getContext());
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
@SuppressWarnings("UnusedDeclaration")
public WrappingLinearLayoutManager(RecyclerView view, int orientation, boolean reverseLayout) {
    super(view.getContext(), orientation, reverseLayout);
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
源代码7 项目: beaconloc   文件: WrapLinearLayoutManager.java
@SuppressWarnings("UnusedDeclaration")
public WrapLinearLayoutManager(RecyclerView view) {
    super(view.getContext());
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
源代码8 项目: beaconloc   文件: WrapLinearLayoutManager.java
@SuppressWarnings("UnusedDeclaration")
public WrapLinearLayoutManager(RecyclerView view, int orientation, boolean reverseLayout) {
    super(view.getContext(), orientation, reverseLayout);
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
源代码9 项目: Loop   文件: CustomLinearLayoutManager.java
@SuppressWarnings("UnusedDeclaration")
public CustomLinearLayoutManager(RecyclerView view) {
    super(view.getContext());
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
源代码10 项目: Loop   文件: CustomLinearLayoutManager.java
@SuppressWarnings("UnusedDeclaration")
public CustomLinearLayoutManager(RecyclerView view, int orientation, boolean reverseLayout) {
    super(view.getContext(), orientation, reverseLayout);
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
源代码11 项目: MultiView   文件: LinearLayoutManager2.java
@SuppressWarnings("UnusedDeclaration")
public LinearLayoutManager2(RecyclerView view) {
    super(view.getContext());
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
源代码12 项目: MultiView   文件: LinearLayoutManager2.java
@SuppressWarnings("UnusedDeclaration")
public LinearLayoutManager2(RecyclerView view, int orientation, boolean reverseLayout) {
    super(view.getContext(), orientation, reverseLayout);
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
源代码13 项目: MyBlogDemo   文件: NestedScrollView.java
boolean overScrollByCompat(int deltaX, int deltaY,
                               int scrollX, int scrollY,
                               int scrollRangeX, int scrollRangeY,
                               int maxOverScrollX, int maxOverScrollY,
                               boolean isTouchEvent) {
        final int overScrollMode = ViewCompat.getOverScrollMode(this);
        final boolean canScrollHorizontal =
                computeHorizontalScrollRange() > computeHorizontalScrollExtent();
        final boolean canScrollVertical =
                computeVerticalScrollRange() > computeVerticalScrollExtent();
        final boolean overScrollHorizontal = overScrollMode == ViewCompat.OVER_SCROLL_ALWAYS ||
                (overScrollMode == ViewCompat.OVER_SCROLL_IF_CONTENT_SCROLLS && canScrollHorizontal);
        final boolean overScrollVertical = overScrollMode == ViewCompat.OVER_SCROLL_ALWAYS ||
                (overScrollMode == ViewCompat.OVER_SCROLL_IF_CONTENT_SCROLLS && canScrollVertical);

        int newScrollX = scrollX + deltaX;
        if (!overScrollHorizontal) {
            maxOverScrollX = 0;
        }

        int newScrollY = scrollY + deltaY;
        if (!overScrollVertical) {
            maxOverScrollY = 0;
        }

        // Clamp values if at the limits and record
        final int left = -maxOverScrollX;
        final int right = maxOverScrollX + scrollRangeX;
        final int top = -maxOverScrollY;
        final int bottom = maxOverScrollY + scrollRangeY;

        boolean clampedX = false;
        if (newScrollX > right) {
            newScrollX = right;
            clampedX = true;
        } else if (newScrollX < left) {
            newScrollX = left;
            clampedX = true;
        }

        boolean clampedY = false;
        if (newScrollY > bottom) {
            newScrollY = bottom;
            clampedY = true;
        } else if (newScrollY < top) {
            newScrollY = top;
            clampedY = true;
        }

        if (clampedY) {
//            mScroller.springBack(newScrollX, newScrollY, 0, 0, 0, getScrollRange());
        }

        onOverScrolled(newScrollX, newScrollY, clampedX, clampedY);

        return clampedX || clampedY;
    }
 
源代码14 项目: MiBandDecompiled   文件: VerticalViewPager.java
public void draw(Canvas canvas)
{
    int i1 = 1;
    super.draw(canvas);
    int j1 = ViewCompat.getOverScrollMode(this);
    boolean flag1;
    if (j1 == 0 || j1 == i1 && k != null && k.getCount() > i1)
    {
        boolean flag = Q.isFinished();
        flag1 = false;
        if (!flag)
        {
            int j2 = canvas.save();
            int k2 = getWidth() - getPaddingLeft() - getPaddingRight();
            canvas.rotate(0.0F);
            Q.setSize(k2, getHeight());
            flag1 = false | Q.draw(canvas);
            canvas.restoreToCount(j2);
        }
        if (!R.isFinished())
        {
            int k1 = canvas.save();
            int l1 = getWidth() - getPaddingLeft() - getPaddingRight();
            int i2 = getHeight();
            if (k != null)
            {
                i1 = k.getCount();
            }
            canvas.rotate(180F);
            canvas.translate(-l1 + getPaddingLeft(), -i1 * (i2 + r) + r);
            R.setSize(l1, i2);
            flag1 |= R.draw(canvas);
            canvas.restoreToCount(k1);
        }
    } else
    {
        Q.finish();
        R.finish();
        flag1 = false;
    }
    if (flag1)
    {
        invalidate();
    }
}
 
源代码15 项目: BlueBoard   文件: MyLinearLayoutManager.java
@SuppressWarnings("UnusedDeclaration")
public MyLinearLayoutManager(RecyclerView view) {
    super(view.getContext());
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
源代码16 项目: BlueBoard   文件: MyLinearLayoutManager.java
@SuppressWarnings("UnusedDeclaration")
public MyLinearLayoutManager(RecyclerView view, int orientation, boolean reverseLayout) {
    super(view.getContext(), orientation, reverseLayout);
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
@SuppressWarnings("UnusedDeclaration")
public WrapContentManagerRecyclerView(RecyclerView view) {
    super(view.getContext());
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
@SuppressWarnings("UnusedDeclaration")
public WrapContentManagerRecyclerView(RecyclerView view, int orientation, boolean reverseLayout) {
    super(view.getContext(), orientation, reverseLayout);
    this.view = view;
    this.overScrollMode = ViewCompat.getOverScrollMode(view);
}
 
 同类方法