2013-02-07 35 views
0

我想获取ListView的可见坐标(的任何一个)的值。我使用了ScrollListener,但我不确定哪个属性会给我这些值。我最终想要使用这些值来计算滚动的方向。有谁知道如何做到这一点?Android的ListView - 检索可见边界

回答

1

试试这种方法。

listView.getLastVisiblePosition() in your onScroll listner 

这不会给出坐标,但您会很容易地找到滚动方向,即向上或向下。

这将返回一个int的值,如果它增加的话,那么你的表演向下滚动,如果ts减少,那么这意味着用户正在向上滚动。

+0

我知道这一个。 :)我希望能够执行更好的检测,因为我的ListView中的单元格非常大,并且在慢速滚动完成时位置值不会改变。 –

+0

我结束了使用这一个。谢谢你的帮助。 :) –

0

OnScrollListener有一个功能,你需要覆盖调用onScroll,你可以用它来解决你的问题。这里有一个代码片段:

listView.setOnScrollListener(new OnScrollListener() { 

    @Override 
    public void onScroll (AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 

      if (++firstVisibleItem + visibleItemCount > totalItemCount) { 
       //Reached last element in list, Do Something... 
      } 
    } 
} 

你可以用它来确定用户是向上还是向下滚动坐标。 firstVisibleItem会给你列表中第一个可见物品的位置/坐标,visibleItemCount会告诉你还有多少元素可以看到,totalItemCount自己说话。