Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android更新单行-奇怪的行为_Android_Android Listview - Fatal编程技术网

Android更新单行-奇怪的行为

Android更新单行-奇怪的行为,android,android-listview,Android,Android Listview,我已经实现了自定义适配器,并为图像下载执行了一些异步操作。我也实施了 这就是我所做的更新 int startRow = mainListView.getFirstVisiblePosition(); int endRow = mainListView.getLastVisiblePosition(); Log.e("IMAGEURL", "position: " + curPosition + " " + "startRow: " + startRow + " " + imageIn

我已经实现了自定义适配器,并为图像下载执行了一些异步操作。我也实施了

这就是我所做的更新

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

更多详情:

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

它还更改getCount()并提供(原始行+1额外行)

编辑:

我已移除PullToRefresh一切正常,getFirstVisiblePosition()提供了正确的位置。图像正在映射到右行


但我需要拉提神。仍然在寻找答案

没有什么可以阻止您适当地偏移这些位置,以考虑库插入的额外行。True。这就是我所做的,但它不是一个很好的解决方案。如果你打算使用这个库,那么这就是你能得到的最简洁的解决方案(除非你实现你自己的
PullToRefreshListView
,或者修改现有的库来展示
ListView
)的默认行为。你可以尝试其他类似的PTR库
[0] ProgressBar  (id=830008126840)  
[1] ImageView  (id=830008129008)    
[2] TextView  (id=830008130288) 
[3] TextView  (id=830008131616)