[英]Get the position of scrollbars(not the position item) in a ListView
我正在实现一个时间轴UI,它基本上是一个ListView
。 棘手的部分是当用户滚动ListView
,它将在滚动条旁边显示一个文本框(显示时隙,例如9:00 am)。 它在左侧,相邻并随滚动条一起移动。
我正在使用OnScrollListener
来检测滚动事件。 但是我不知道如何获取滚动条的确切位置(顶部,中点,底部),以便将文本框放在正确的位置。 有很多关于获取顶部项目位置的文章,但似乎不适用于滚动条本身。
有什么想法吗?
顺便说一句,很抱歉没有附加用户界面的屏幕截图。 由于我是新用户,所以Stackoverflow不允许我这样做。
但是我不知道如何获取滚动条的确切位置(顶部,中点,底部),以便将文本框放在正确的位置
您可能想要类似Path
应用程序的东西。 本教程是您要寻找的(可能,如果您尚未看到的话)。
基本上, ListView
有一些使用的有关滚动条位置(也包括大小)的方法,但是这些方法被声明为protected
,因此无法从外部使用,因此您需要扩展ListView
类。 这些方法是ListView.computeVerticalScrollExtent()
, ListView.computeVerticalScrollOffset()
和ListView.computeVerticalScrollRange()
。
使用这些方法,您应该能够确定滚动条在侦听器中特定时刻的放置位置。
getListView()。getLastVisiblePosition()
listview.post(new Runnable() {
public void run() {
listview.getLastVisiblePosition();
}
});
View.getScrollY()
getScrollY :返回此视图的滚动顶部位置。 这是视图显示部分的顶部边缘。 您无需在其上方绘制任何像素,因为这些像素不在屏幕视图框架之内。
返回值视图的显示部分的顶部边缘,以像素为单位。
另请参阅: http : //eliasbland.wordpress.com/2011/07/28/how-to-save-the-position-of-a-scrollview-when-the-orientation-changes-in-android/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.