Java Code Examples for android.view.ViewGroup#getScrollY()
The following examples show how to use
android.view.ViewGroup#getScrollY() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SmoothRefreshLayout.java From SmoothRefreshLayout with MIT License | 6 votes |
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); } } } }
Example 2
Source File: TouchTargetHelper.java From react-native-GPay with MIT License | 5 votes |
/** * 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; } }
Example 3
Source File: RNTouchTargetHelper.java From react-native-sensors-analytics with Apache License 2.0 | 5 votes |
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; } }
Example 4
Source File: MDRootLayout.java From talk-android with MIT License | 5 votes |
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(); } }
Example 5
Source File: FocusAnimator.java From delion with Apache License 2.0 | 5 votes |
/** 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); }
Example 6
Source File: FocusAnimator.java From AndroidChromium with Apache License 2.0 | 5 votes |
/** 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); }
Example 7
Source File: ViewUtil.java From weex with Apache License 2.0 | 5 votes |
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; }
Example 8
Source File: FocusAnimator.java From 365browser with Apache License 2.0 | 5 votes |
/** 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); }
Example 9
Source File: ScrollBoundaryUtil.java From CollapsingRefresh with Apache License 2.0 | 4 votes |
public static void transformPointToViewLocal(ViewGroup group, View child, float[] point) { point[0] += group.getScrollX() - child.getLeft(); point[1] += group.getScrollY() - child.getTop(); }
Example 10
Source File: ScrollingUtil.java From AgentWebX5 with Apache License 2.0 | 4 votes |
public static boolean isViewGroupToBottom(ViewGroup viewGroup) { View subChildView = viewGroup.getChildAt(0); return (subChildView != null && subChildView.getMeasuredHeight() <= viewGroup.getScrollY() + viewGroup.getHeight()); }
Example 11
Source File: ScrollingUtil.java From TwinklingRefreshLayout with Apache License 2.0 | 4 votes |
public static boolean isViewGroupToBottom(ViewGroup viewGroup) { View subChildView = viewGroup.getChildAt(0); return (subChildView != null && subChildView.getMeasuredHeight() <= viewGroup.getScrollY() + viewGroup.getHeight()); }