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)