gpt4 book ai didi

android - 获取 listView 中所有完整的可见对象

转载 作者:IT老高 更新时间:2023-10-28 23:20:16 25 4
gpt4 key购买 nike

我有一个 ListView,其中包含更多元素,然后我可以一次显示。现在我想从所有元素中获取索引,这些元素完全可见(-> 不包括仅部分可见的元素)。此时我使用 getFirstVisiblePosition() & getLastVisiblePosition()for-loop 来迭代它们,但这些方法并不准确,因为我想要。

有没有更好的解决方案?

最佳答案

ListView 将其行组织在一个自上而下的列表中,您可以使用 getChildAt() 访问该列表。所以你想要的很简单。让我们获取第一个和最后一个 View ,然后检查它们是否完全可见:

// getTop() and getBottom() are relative to the ListView, 
// so if getTop() is negative, it is not fully visible
int first = 0;
if(listView.getChildAt(first).getTop() < 0)
first++;

int last = listView.getChildCount() - 1;
if(listView.getChildAt(last).getBottom() > listView.getHeight())
last--;

// Now loop through your rows
for( ; first <= last; first++) {
// Do something
View row = listView.getChildAt(first);
}

加法

Now I want to get Index off all Elements, which are full visible

我不确定那句话是什么意思。如果上面的代码不是您想要的索引,您可以使用:

int first = listView.getFirstVisiblePosition();
if(listView.getChildAt(0).getTop() < 0)
first++;

拥有一个与您的适配器相关的索引(即 adapter.getItem(first)。)

关于android - 获取 listView 中所有完整的可见对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com