2013-04-05 89 views
6

View.getLeft()vs View.getScrollX()之间的区别是什么? 请不要从文档复制和粘贴的定义,因为我要为你做下面Android View.getLeft()与View.getScrollX()之间的差异

getScrollX()

Return the scrolled left position of this view. 

getLeft()

Left position of this view relative to its parent 

我认为那些2值应该是相同的,但我的样本程序,如果我做View.scrollBy(20,0) 我看到,getScrollX()将返回20和视图实际移动到右侧,但getLeft()仍然为零

我很困惑,因为如果视觉上的观点是由20像素向右滚动,它的左侧位置,也应该被更新,但它仍然是0

显然不能相同,否则有不需要有返回相同的结果2种不同的方法

请帮助

回答

3

getLeft()返回意见位置相对于其父的。它如何滚动并不会影响这一点。滚动会影响视图的内容,而不是其位置。

从Android文档中有关getLeft()报价:

For instance, when getLeft() returns 20, that means the view is located 20 pixels to 
the right of the left edge of its direct parent. 

getScrollX(),在另一方面,可以让你知道在视图中的内容是如何移动。

View.scrollBy(20,0)影响视图中的内容(如视图的子视图),并且实际上并未将视图相对于视图的父视图移动。