android - ScrollView ScrollBy 方法有 2 个参数

标签 android methods scrollview

ScrollView布局实际上是一个垂直滚动条。

为什么 ScrollView 方法需要 x 参数,而它只能垂直滚动?

难道不应该只接受 y 参数吗?因为 x 参数没有用。

有什么想法吗?

最佳答案

代码来自ScrollView.class
ScrollView需要调用ViewscrollTo(x, y),所以需要2个参数。
因此,任何View的子类,包括ScrollView,都可以按x轴和y轴滚动。

@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);
        }
    }
}

那为什么ScrollView只能垂直方向滚动呢?
查看 ScrollView 中的 public boolean onTouchEvent(MotionEvent ev) 方法。
它只处理 ev.getY() !
另一方面,Horizo​​nalScrollView 仅处理 ev.getX()

关于android - ScrollView ScrollBy 方法有 2 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19221016/

相关文章:

java - 如何将 View 从 Y 位置移动到另一个 Y

php - 未传递给类方法的变量

android - ScrollView 内部没有释放动力

具有动态名称的 PHP 方法链接

Scrollview 滚动时向上滚动其他内容

Android: ScrollView拦截 map API V2 touch

android - 如何在Android中添加HttpClient请求和连接超时

android - Android 中的 getColor() 和 getColorStateList() 有什么区别

java - 尝试安装未签名的远程 .apk 文件时出现不一致的解析错误

java - 未为对象类型定义getTime()方法-怎么了?