View.getLeft() 与 View.getScrollX() 之间的 Android 区别
Posted
技术标签:
【中文标题】View.getLeft() 与 View.getScrollX() 之间的 Android 区别【英文标题】:Android Difference between View.getLeft() vs View.getScrollX() 【发布时间】:2013-03-27 08:13:50 【问题描述】:两者有什么区别 View.getLeft() 与 View.getScrollX() ? 请不要从文档中复制和粘贴定义,因为我将在下面为您完成此操作
getScrollX()
Return the scrolled left position of this view.
getLeft()
Left position of this view relative to its parent
我认为这两个值应该是相同的,但是我的示例程序,如果我这样做 View.scrollBy(20, 0) 我看到 getScrollX() 将返回 20 并且视图实际上向右移动,但 getLeft() 仍然为零
我很困惑,因为如果视觉上视图向右滚动了 20px,它的左侧位置也应该更新,但它仍然是 0
显然它们不能相同,否则没有必要有两种不同的方法返回相同的结果
请帮忙
【问题讨论】:
【参考方案1】: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) 会影响视图中的内容(如视图的子视图),并且实际上不会相对于视图的父视图移动视图。
【讨论】:
以上是关于View.getLeft() 与 View.getScrollX() 之间的 Android 区别的主要内容,如果未能解决你的问题,请参考以下文章
Drupal 6:views_get_view_result