繁体   English   中英

获取ListView中滚动条的位置(而不是位置项)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM