ScrollView.clamp方法相对于scrollTo有什么作用?

问题描述

ScrollView中具有以下静态方法

private static int clamp(int n,int my,int child) {
    ...
}

当我在ScrollView上调用scrollTo(int x,int y)时,它会执行以下操作:

/**
 * {@inheritDoc}
 *
 * <p>This version also clamps the scrolling to the bounds of our child.
 */
@Override
public void scrollTo(int x,int y) {
    // we rely on the fact the View.scrollBy calls scrollTo.
    if (getChildCount() > 0) {
        View child = getChildAt(0);
        x = clamp(x,getWidth() - mPaddingRight - mPaddingLeft,child.getWidth());
        y = clamp(y,getHeight() - mPaddingBottom - mPaddingTop,child.getHeight());
        if (x != mScrollX || y != mScrollY) {
            super.scrollTo(x,y);
        }
    }
}

假设我以值x = 110&y = 200调用scrollTo,super.scrollTo()接收到x = 0&y = 200。

  1. 钳制这些值意味着什么?
  2. 为什么需要它?

一个简单的例子很方便。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)