android.view.View#scrollBy ( )源码实例Demo

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

源代码1 项目: VideoOS-Android-SDK   文件: UDView.java
/**
 * 滚动dx, dy
 *
 * @param dx
 * @param dy
 * @return
 */
public UDView scrollBy(int dx, int dy) {
    View view = getView();
    if (view != null) {
        view.scrollBy(dx, dy);
    }
    return this;
}
 
public static boolean scrollCompat(View view, float deltaY) {
    if (view instanceof WebView
            || view instanceof HorizontalScrollView
            || ViewCatcherUtil.isRecyclerView(view)) {
        view.scrollBy((int) deltaY, 0);
        return true;
    }
    return false;
}
 
源代码3 项目: AgentWebX5   文件: ScrollingUtil.java
public static void scrollAViewBy(View view, int height) {
    if (view instanceof RecyclerView) ((RecyclerView) view).scrollBy(0, height);
    else if (view instanceof ScrollView) ((ScrollView) view).smoothScrollBy(0, height);
    else if (view instanceof AbsListView) ((AbsListView) view).smoothScrollBy(height, 0);
    else {
        try {
            Method method = view.getClass().getDeclaredMethod("smoothScrollBy", Integer.class, Integer.class);
            method.invoke(view, 0, height);
        } catch (Exception e) {
            view.scrollBy(0, height);
        }
    }
}
 
源代码4 项目: TwinklingRefreshLayout   文件: ScrollingUtil.java
public static void scrollAViewBy(View view, int height) {
    if (view instanceof RecyclerView) ((RecyclerView) view).scrollBy(0, height);
    else if (view instanceof ScrollView) ((ScrollView) view).smoothScrollBy(0, height);
    else if (view instanceof AbsListView) ((AbsListView) view).smoothScrollBy(height, 0);
    else {
        try {
            Method method = view.getClass().getDeclaredMethod("smoothScrollBy", Integer.class, Integer.class);
            method.invoke(view, 0, height);
        } catch (Exception e) {
            view.scrollBy(0, height);
        }
    }
}
 
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    if (mUseSliderMode) {
        float curX;
        switch (motionEvent.getAction()) {
            case MotionEvent.ACTION_DOWN:
                mDeclineButton.setVisibility(View.GONE);
                mAnswerX = motionEvent.getX() - mRoot.getWidth();
                mBegin = true;
                mOldSize = 0;
                break;
            case MotionEvent.ACTION_MOVE:
                curX = motionEvent.getX() - mRoot.getWidth();
                view.scrollBy((int) (mAnswerX - curX), view.getScrollY());
                mOldSize -= mAnswerX - curX;
                mAnswerX = curX;
                if (mOldSize < -25) mBegin = false;
                if (curX < (mScreenWidth / 4) - mRoot.getWidth() && !mBegin) {
                    performClick();
                    return true;
                }
                break;
            case MotionEvent.ACTION_UP:
                mDeclineButton.setVisibility(View.VISIBLE);
                view.scrollTo(0, view.getScrollY());
                break;
        }
        return true;
    }
    return false;
}
 
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    if (mUseSliderMode) {
        float curX;
        switch (motionEvent.getAction()) {
            case MotionEvent.ACTION_DOWN:
                mAnswerButton.setVisibility(View.GONE);
                mDeclineX = motionEvent.getX();
                break;
            case MotionEvent.ACTION_MOVE:
                curX = motionEvent.getX();
                view.scrollBy((int) (mDeclineX - curX), view.getScrollY());
                mDeclineX = curX;
                if (curX > (3 * mScreenWidth / 4)) {
                    performClick();
                    return true;
                }
                break;
            case MotionEvent.ACTION_UP:
                mAnswerButton.setVisibility(View.VISIBLE);
                view.scrollTo(0, view.getScrollY());
                break;
        }
        return true;
    }
    return false;
}
 
源代码7 项目: SmoothRefreshLayout   文件: ScrollCompat.java
public static boolean scrollCompat(View view, float deltaY) {
    if (view != null) {
        if (view instanceof AbsListView) {
            final AbsListView absListView = (AbsListView) view;
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                absListView.scrollListBy((int) deltaY);
            } else if (absListView instanceof ListView) {
                // {@link android.support.v4.widget.ListViewCompat#scrollListBy(ListView,
                // int)}
                final ListView listView = (ListView) absListView;
                final int firstPosition = listView.getFirstVisiblePosition();
                if (firstPosition == ListView.INVALID_POSITION) {
                    return false;
                }
                final View firstView = listView.getChildAt(0);
                if (firstView == null) {
                    return false;
                }
                final int newTop = (int) (firstView.getTop() - deltaY);
                listView.setSelectionFromTop(firstPosition, newTop);
            } else {
                absListView.smoothScrollBy((int) deltaY, 0);
            }
            return true;
        } else if (view instanceof WebView
                || view instanceof ScrollView
                || view instanceof NestedScrollView) {
            view.scrollBy(0, (int) deltaY);
            return true;
        } else if (ViewCatcherUtil.isRecyclerView(view)) {
            RecyclerView recyclerView = (RecyclerView) view;
            if (!(recyclerView.getOnFlingListener() instanceof PagerSnapHelper)) {
                // Fix the problem of adding new data to RecyclerView while in Fling state,
                // the new items will continue to Fling
                if (recyclerView.getScrollState() == RecyclerView.SCROLL_STATE_SETTLING) {
                    recyclerView.stopScroll();
                }
                view.scrollBy(0, (int) deltaY);
            }
            return true;
        }
    }
    return false;
}
 
源代码8 项目: DevUtils   文件: ViewUtils.java
/**
 * View 内部滚动位置 - 相对于上次移动的最后位置移动
 * <pre>
 *     无滚动过程
 * </pre>
 * @param view {@link View}
 * @param x    X 轴开始坐标
 * @param y    Y 轴开始坐标
 * @return {@link View}
 */
public static View scrollBy(final View view, final int x, final int y) {
    if (view != null) view.scrollBy(x, y);
    return view;
}
 
 方法所在类
 同类方法