ScrollView ScrollBy方法有2个参数

时间:2013-10-07 09:19:32

标签: android methods scrollview

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

为什么滚动视图方法只采用x参数而只是垂直滚动?

不应该只带y参数吗?因为x参数没用。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

代码来自ScrollView.class ScrollView需要致电View的{​​{1}},因此需要2个参数 因此,任何scrollTo(x, y)的子类(包括View)都可以按x轴和y轴滚动。

ScrollView

那么为什么@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中的public boolean onTouchEvent(MotionEvent ev)方法 它只处理ScrollView
另一方面,ev.getY()仅处理HorizonalScrollView

答案 1 :(得分:1)

  

为什么滚动视图方法在仅滚动时采用x参数   垂直?

仅当您的布局文件与视图宽度相同时才会出现这种情况。看看this thread.

您也可以使用HorizontalScrollView进行水平滚动,您需要x参数。请检查the developer site

或者,如果需要,您可以使用this blog中显示的这个二维滚动条来使用这两个参数。