首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取lListView上的所有完全可见对象

获取lListView上的所有完全可见对象
EN

Stack Overflow用户
提问于 2012-11-01 23:44:30
回答 3查看 9.7K关注 0票数 18

我有一个ListView,它包含的元素比我可以在一个time.Now上显示的元素多。我想让索引关闭所有元素,这些元素都是完全可见的( ->不包括那些只部分可见的元素)。现在,我在for-loop中使用getFirstVisiblePosition()getLastVisiblePosition()来迭代它们,但是这些方法并不像我想要的那样准确。

有没有更好的解决方案?

EN

回答 3

Stack Overflow用户

发布于 2012-11-02 00:45:41

我这样做的方式是,我将扩展您在ListView适配器的getView中传递的任何视图,并覆盖onAttachedToWindowonDetachedToWindow方法以跟踪可见的索引。

票数 1
EN

Stack Overflow用户

发布于 2012-11-02 02:15:58

试试onScrollListner,你就可以使用getFirstVisiblePosition和getLastVisiblePosition了。

这个this链接,它包含类似类型的问题。我想你已经知道答案了.。

票数 1
EN

Stack Overflow用户

发布于 2014-12-12 19:20:18

上述代码在某种程度上是正确的。如果您需要查找视图的完全可见位置,请使用以下代码

代码语言:javascript
复制
public void onScrollStateChanged(AbsListView view, int scrollState)  {
    // TODO Auto-generated method stub
    View v = null;

    if (scrollState == 0) {
        int first =0;
        if (view.getChildAt(first).getTop() < 0)
            first++;
        int last = list.getChildCount() - 1;
        if (list.getChildAt(last).getBottom() > list
                .getHeight())
            last--;
        // Now loop through your rows
        for ( ; first <= last; first++) {
            // Do something

            View row = view.getChildAt(first);
            // postion for your row............ 
            int i=list.getPositionForView(row);
        }
    }
        // set the margin.
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13180571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档