static float getScrollY(View view) { return view.getScrollY(); }
public int getScrollY() { View view = mView.get(); if (view == null) { return 0; } return view.getScrollY(); } public void setScrollY(int value) {
public void setScrollX(int value) { View view = mView.get(); if (view != null) { view.scrollTo(value, view.getScrollY()); } } public int getScrollY() {
public static boolean isTransformedTouchPointInView(@NonNull View group,@NonNull View child, float x, float y,PointF outLocalPoint) { if (child.getVisibility() != View.VISIBLE) { return false; } final float[] point = new float[2]; point[0] = x; point[1] = y; // transformPointToViewLocal(group, child, point); point[0] += group.getScrollX() - child.getLeft(); point[1] += group.getScrollY() - child.getTop(); // final boolean isInView = pointInView(child, point[0], point[1], 0); final boolean isInView = point[0] >= 0 && point[1] >= 0 && point[0] < (child.getWidth()) && point[1] < ((child.getHeight())); if (isInView && outLocalPoint != null) { outLocalPoint.set(point[0]-x, point[1]-y); } return isInView; }
public static boolean isTransformedTouchPointInView(@NonNull View group,@NonNull View child, float x, float y,PointF outLocalPoint) { if (child.getVisibility() != View.VISIBLE) { return false; } final float[] point = new float[2]; point[0] = x; point[1] = y; // transformPointToViewLocal(group, child, point); point[0] += group.getScrollX() - child.getLeft(); point[1] += group.getScrollY() - child.getTop(); // final boolean isInView = pointInView(child, point[0], point[1], 0); final boolean isInView = point[0] >= 0 && point[1] >= 0 && point[0] < (child.getWidth()) && point[1] < ((child.getHeight())); if (isInView && outLocalPoint != null) { outLocalPoint.set(point[0]-x, point[1]-y); } return isInView; }
private void captureValues(TransitionValues transitionValues) { transitionValues.values.put(PROPNAME_SCROLL_X, transitionValues.view.getScrollX()); transitionValues.values.put(PROPNAME_SCROLL_Y, transitionValues.view.getScrollY()); }
private static JSONObject getDimensionOfView(View view) { JSONObject dimension = new JSONObject(); try { dimension.put(DIMENSION_TOP_KEY, view.getTop()); dimension.put(DIMENSION_LEFT_KEY, view.getLeft()); dimension.put(DIMENSION_WIDTH_KEY, view.getWidth()); dimension.put(DIMENSION_HEIGHT_KEY, view.getHeight()); dimension.put(DIMENSION_SCROLL_X_KEY, view.getScrollX()); dimension.put(DIMENSION_SCROLL_Y_KEY, view.getScrollY()); dimension.put(DIMENSION_VISIBILITY_KEY, view.getVisibility()); } catch (JSONException e) { Log.e(TAG, "Failed to create JSONObject for dimension.", e); } return dimension; }
private void transformPointToViewLocal(int[] point, View child) { ViewParent viewParent = child.getParent(); while (viewParent instanceof View) { View view = (View) viewParent; point[0] += view.getScrollX() - child.getLeft(); point[1] += view.getScrollY() - child.getTop(); if (view instanceof DrawerLayout) { break; } child = view; viewParent = child.getParent(); } }
public static boolean canScrollDown(@NonNull View targetView) { if (android.os.Build.VERSION.SDK_INT < 14) { if (targetView instanceof AbsListView) { final ViewGroup viewGroup = (ViewGroup) targetView; final AbsListView absListView = (AbsListView) targetView; final int childCount = viewGroup.getChildCount(); return childCount > 0 && (absListView.getLastVisiblePosition() < childCount - 1 || viewGroup.getChildAt(childCount - 1).getBottom() > targetView.getPaddingBottom()); } else { return targetView.getScrollY() < 0; } } else { return targetView.canScrollVertically(1); } }
public static boolean canScrollRight(@NonNull View targetView) { if (android.os.Build.VERSION.SDK_INT < 14) { if (targetView instanceof AbsListView) { final ViewGroup viewGroup = (ViewGroup) targetView; final AbsListView absListView = (AbsListView) targetView; final int childCount = viewGroup.getChildCount(); return childCount > 0 && (absListView.getLastVisiblePosition() < childCount - 1 || viewGroup.getChildAt(childCount - 1).getBottom() > targetView.getPaddingBottom()); } else { return targetView.getScrollY() < 0; } } else { return targetView.canScrollHorizontally(1); } }
public static boolean canScrollUp(@NonNull View targetView) { if (android.os.Build.VERSION.SDK_INT < 14) { if (targetView instanceof AbsListView) { final ViewGroup viewGroup = (ViewGroup) targetView; final AbsListView absListView = (AbsListView) targetView; return viewGroup.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0 || viewGroup.getChildAt(0).getTop() < targetView.getPaddingTop()); } else { return targetView.getScrollY() > 0; } } else { return targetView.canScrollVertically(-1); } }
public static boolean canScrollLeft(@NonNull View targetView) { if (android.os.Build.VERSION.SDK_INT < 14) { if (targetView instanceof AbsListView) { final ViewGroup viewGroup = (ViewGroup) targetView; final AbsListView absListView = (AbsListView) targetView; return viewGroup.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0 || viewGroup.getChildAt(0).getTop() < targetView.getPaddingTop()); } else { return targetView.getScrollY() > 0; } } else { return targetView.canScrollHorizontally(-1); } }
public S hasScrollY(int scroll) { isNotNull(); int actualScroll = actual.getScrollY(); assertThat(actualScroll) // .overridingErrorMessage("Expected y scroll <%s> but was <%s>", scroll, actualScroll) // .isEqualTo(scroll); return myself; }
private boolean canScrollUp(View view, float x, float y) { if (view instanceof ViewGroup) { ViewGroup vg = (ViewGroup) view; for (int i = 0; i < vg.getChildCount(); i++) { View child = vg.getChildAt(i); int childLeft = child.getLeft() - view.getScrollX(); int childTop = child.getTop() - view.getScrollY(); int childRight = child.getRight() - view.getScrollX(); int childBottom = child.getBottom() - view.getScrollY(); boolean intersects = x > childLeft && x < childRight && y > childTop && y < childBottom; if (intersects && canScrollUp(child, x - childLeft, y - childTop)) { return true; } } } return view.canScrollVertically(-1); }
private static void transformMatrixToPager(Matrix matrix, View view, ViewPager pager) { if (view.getParent() instanceof View) { View parent = (View) view.getParent(); if (parent != pager) { transformMatrixToPager(matrix, parent, pager); } matrix.preTranslate(-parent.getScrollX(), -parent.getScrollY()); } matrix.preTranslate(view.getLeft(), view.getTop()); matrix.preConcat(view.getMatrix()); }
public boolean canScrollUp(View view) { if (android.os.Build.VERSION.SDK_INT < 14) { if (view instanceof AbsListView) { final AbsListView absListView = (AbsListView) view; return absListView.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0 || absListView .getChildAt(0).getTop() < absListView.getPaddingTop()); } else { return view.getScrollY() > 0; } } else { return ViewCompat.canScrollVertically(view, -1); } }
@Test public void scrollBy_shouldStoreTheScrolledCoordinates() throws Exception { view.scrollTo(4, 5); view.scrollBy(10, 20); assertThat(shadowOf(view).scrollToCoordinates).isEqualTo(new Point(14, 25)); assertThat(view.getScrollX()).isEqualTo(14); assertThat(view.getScrollY()).isEqualTo(25); }
@Test public void setScrolls_canBeAskedFor() throws Exception { view.setScrollX(234); view.setScrollY(544); assertThat(view.getScrollX()).isEqualTo(234); assertThat(view.getScrollY()).isEqualTo(544); }
@Test public void shouldGetScrollXAndY() { assertEquals(0, view.getScrollX()); assertEquals(0, view.getScrollY()); }
@Test public void shouldScrollTo() throws Exception { view.scrollTo(7, 6); assertEquals(7, view.getScrollX()); assertEquals(6, view.getScrollY()); }