1

我已经实现了自定义适配器并为图像下载做了一些异步操作。我还实现了 PullToRefresh - Nillson

这就是我为更新所做的

int startRow = mainListView.getFirstVisiblePosition();
int endRow = mainListView.getLastVisiblePosition();
Log.e("IMAGEURL", "position: " + curPosition + " " + "startRow: " + startRow + " " +       imageInfo.imageUrl);
if (curPosition >= startRow && curPosition <= endRow & imageInfo.holderPosition == curPosition) {
View rowView = mainListView.getChildAt(curPosition - startRow);

奇怪的是,rowView 返回的是 PullToRefresh 顶部相对布局,而不是列表的行视图。这是调试信息,因为我的视图中没有 ant 进度条,它与 PullToRefresh 顶部布局完全匹配。

[0] ProgressBar  (id=830008126840)  
[1] ImageView  (id=830008129008)    
[2] TextView  (id=830008130288) 
[3] TextView  (id=830008131616) 

只有当我的 listVew 中没有滚动时才会发生这种情况(所有行都可见,没有隐藏行)。如果我将行数增加到可见数字之外,我会在 mainListView.getChildAt(curPosition - startRow) 上得到我的 rowView,但不是正确的,因为在位置 0 mainListView.getFirstVisiblePosition() 给了我 1,实际上应该为零。

更多细节:

PullToRefresh 库在用户的 listView 行的顶部添加一个额外的行,它发生在索引 0 处。

它还更改 getCount() 并给出(原始行 + 1 额外)

编辑:

我已经删除了 PullToRefresh 一切正常,getFirstVisiblePosition() 给出了正确的位置。图像映射到正确的行。

但我需要拉来刷新。仍在寻找答案。

4

0 回答 0