getScrollY ( )源码实例Demo

android.view.ViewGroup#getScrollY ( )源码实例Demo

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

源代码1 项目: SmoothRefreshLayout   文件: SmoothRefreshLayout.java
public void transformPointToViewLocal(ViewGroup group, float[] point, View child) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
        group.transformPointToViewLocal(point, child);
    } else {
        // When the system version is lower than LOLLIPOP_MR1, the system source code has no
        // transformPointToViewLocal method. We need to be compatible with it.
        point[0] += group.getScrollX() - child.getLeft();
        point[1] += group.getScrollY() - child.getTop();
        Matrix matrix = child.getMatrix();
        if (!matrix.isIdentity()) {
            mCachedMatrix.reset();
            if (matrix.invert(mCachedMatrix)) {
                mCachedMatrix.mapPoints(point);
            }
        }
    }
}
 
源代码2 项目: react-native-GPay   文件: TouchTargetHelper.java
/**
 * Returns whether the touch point is within the child View
 * It is transform aware and will invert the transform Matrix to find the true local points
 * This code is taken from {@link ViewGroup#isTransformedTouchPointInView()}
 */
private static boolean isTransformedTouchPointInView(
    float x,
    float y,
    ViewGroup parent,
    View child,
    PointF outLocalPoint) {
  float localX = x + parent.getScrollX() - child.getLeft();
  float localY = y + parent.getScrollY() - child.getTop();
  Matrix matrix = child.getMatrix();
  if (!matrix.isIdentity()) {
    float[] localXY = mMatrixTransformCoords;
    localXY[0] = localX;
    localXY[1] = localY;
    Matrix inverseMatrix = mInverseMatrix;
    matrix.invert(inverseMatrix);
    inverseMatrix.mapPoints(localXY);
    localX = localXY[0];
    localY = localXY[1];
  }
  if (child instanceof ReactHitSlopView && ((ReactHitSlopView) child).getHitSlopRect() != null) {
    Rect hitSlopRect = ((ReactHitSlopView) child).getHitSlopRect();
    if ((localX >= -hitSlopRect.left && localX < (child.getRight() - child.getLeft()) + hitSlopRect.right)
        && (localY >= -hitSlopRect.top && localY < (child.getBottom() - child.getTop()) + hitSlopRect.bottom)) {
      outLocalPoint.set(localX, localY);
      return true;
    }

    return false;
  } else {
    if ((localX >= 0 && localX < (child.getRight() - child.getLeft()))
        && (localY >= 0 && localY < (child.getBottom() - child.getTop()))) {
      outLocalPoint.set(localX, localY);
      return true;
    }

    return false;
  }
}
 
private static boolean isTransformedTouchPointInView(float x, float y, ViewGroup parent, View child, PointF outLocalPoint) {
    float localX = (((float) parent.getScrollX()) + x) - ((float) child.getLeft());
    float localY = (((float) parent.getScrollY()) + y) - ((float) child.getTop());
    Matrix matrix = child.getMatrix();
    if (!matrix.isIdentity()) {
        float[] localXY = mMatrixTransformCoords;
        localXY[0] = localX;
        localXY[1] = localY;
        Matrix inverseMatrix = mInverseMatrix;
        matrix.invert(inverseMatrix);
        inverseMatrix.mapPoints(localXY);
        localX = localXY[0];
        localY = localXY[1];
    }
    if ((child instanceof ReactHitSlopView) && ((ReactHitSlopView) child).getHitSlopRect() != null) {
        Rect hitSlopRect = ((ReactHitSlopView) child).getHitSlopRect();
        if (localX < ((float) (-hitSlopRect.left)) || localX >= ((float) ((child.getRight() - child.getLeft()) + hitSlopRect.right)) || localY < ((float) (-hitSlopRect.top)) || localY >= ((float) ((child.getBottom() - child.getTop()) + hitSlopRect.bottom))) {
            return false;
        }
        outLocalPoint.set(localX, localY);
        return true;
    } else if (localX < 0.0f || localX >= ((float) (child.getRight() - child.getLeft())) || localY < 0.0f || localY >= ((float) (child.getBottom() - child.getTop()))) {
        return false;
    } else {
        outLocalPoint.set(localX, localY);
        return true;
    }
}
 
源代码4 项目: talk-android   文件: MDRootLayout.java
private void invalidateDividersForScrollingView(ViewGroup view, final boolean setForTop, boolean setForBottom, boolean hasButtons) {
    if (setForTop && view.getChildCount() > 0) {
        mDrawTopDivider = mTitleBar != null &&
                mTitleBar.getVisibility() != View.GONE &&
                //Not scrolled to the top.
                view.getScrollY() + view.getPaddingTop() > view.getChildAt(0).getTop();

    }
    if (setForBottom && view.getChildCount() > 0) {
        mDrawBottomDivider = hasButtons &&
                view.getScrollY() + view.getHeight() - view.getPaddingBottom() < view.getChildAt(view.getChildCount() - 1).getBottom();
    }
}
 
源代码5 项目: delion   文件: FocusAnimator.java
/** Scroll the layout so that the focused child is on screen. */
private void requestChildFocus() {
    ViewGroup parent = (ViewGroup) mLayout.getParent();
    if (mLayout.getParent() == null) return;

    // Scroll the parent to make the focused child visible.
    if (mFocusedChild != null) parent.requestChildFocus(mLayout, mFocusedChild);

    // {@link View#requestChildFocus} fails to account for children changing their height, so
    // the scroll value may be past the actual maximum.
    int viewportHeight = parent.getBottom() - parent.getTop();
    int scrollMax = Math.max(0, mLayout.getMeasuredHeight() - viewportHeight);
    if (parent.getScrollY() > scrollMax) parent.setScrollY(scrollMax);
}
 
源代码6 项目: AndroidChromium   文件: FocusAnimator.java
/** Scroll the layout so that the focused child is on screen. */
private void requestChildFocus() {
    ViewGroup parent = (ViewGroup) mLayout.getParent();
    if (mLayout.getParent() == null) return;

    // Scroll the parent to make the focused child visible.
    if (mFocusedChild != null) parent.requestChildFocus(mLayout, mFocusedChild);

    // {@link View#requestChildFocus} fails to account for children changing their height, so
    // the scroll value may be past the actual maximum.
    int viewportHeight = parent.getBottom() - parent.getTop();
    int scrollMax = Math.max(0, mLayout.getMeasuredHeight() - viewportHeight);
    if (parent.getScrollY() > scrollMax) parent.setScrollY(scrollMax);
}
 
源代码7 项目: weex   文件: ViewUtil.java
public static boolean isTransformedPointInView(
    ViewGroup parent,
    View child,
    float x,
    float y,
    @Nullable PointF outLocalPoint) {
  Util.throwIfNull(parent);
  Util.throwIfNull(child);

  float localX = x + parent.getScrollX() - child.getLeft();
  float localY = y + parent.getScrollY() - child.getTop();

  // TODO: handle transforms
  /*Matrix childMatrix = child.getMatrix();
  if (!childMatrix.isIdentity()) {
    final float[] localXY = new float[2];
    localXY[0] = localX;
    localXY[1] = localY;
    child.getInverseMatrix
  }*/

  final boolean isInView = ViewUtil.pointInView(child, localX, localY);
  if (isInView && outLocalPoint != null) {
    outLocalPoint.set(localX, localY);
  }

  return isInView;
}
 
源代码8 项目: 365browser   文件: FocusAnimator.java
/** Scroll the layout so that the focused child is on screen. */
private void requestChildFocus() {
    ViewGroup parent = (ViewGroup) mLayout.getParent();
    if (mLayout.getParent() == null) return;

    // Scroll the parent to make the focused child visible.
    if (mFocusedChild != null) parent.requestChildFocus(mLayout, mFocusedChild);

    // {@link View#requestChildFocus} fails to account for children changing their height, so
    // the scroll value may be past the actual maximum.
    int viewportHeight = parent.getBottom() - parent.getTop();
    int scrollMax = Math.max(0, mLayout.getMeasuredHeight() - viewportHeight);
    if (parent.getScrollY() > scrollMax) parent.setScrollY(scrollMax);
}
 
源代码9 项目: CollapsingRefresh   文件: ScrollBoundaryUtil.java
public static void transformPointToViewLocal(ViewGroup group, View child, float[] point) {
    point[0] += group.getScrollX() - child.getLeft();
    point[1] += group.getScrollY() - child.getTop();
}
 
源代码10 项目: AgentWebX5   文件: ScrollingUtil.java
public static boolean isViewGroupToBottom(ViewGroup viewGroup) {
    View subChildView = viewGroup.getChildAt(0);
    return (subChildView != null && subChildView.getMeasuredHeight() <= viewGroup.getScrollY() + viewGroup.getHeight());
}
 
源代码11 项目: TwinklingRefreshLayout   文件: ScrollingUtil.java
public static boolean isViewGroupToBottom(ViewGroup viewGroup) {
    View subChildView = viewGroup.getChildAt(0);
    return (subChildView != null && subChildView.getMeasuredHeight() <= viewGroup.getScrollY() + viewGroup.getHeight());
}
 
源代码评论
动弹
沙发等你来抢
 方法所在类