我有一个使用扩展BaseAdapter的SimpleAdapter创建的Gallery视图.它包含的项目超出了屏幕所能容纳的范围.
所以我正在使用Gallery.getFirstVisiblePosition()和Gallery.getLastVisiblePosition()来获取第一个和最后一个可见位置.但是这些函数并不总是返回正确的值,尤其是在通过调用mGallery.setSelection()并随后调用SimpleAdapter.notifyDataChanged()设置选定位置之后.大多数情况下,即使第一个元素不可见,它的getFirstVisiblePosition()也会返回0.
另请注意,没有.纵向和横向模式下“图库”中可见项目的数量有所不同. getFirstVisiblePosition()返回的值在横向上看起来正确,但在纵向模式下返回错误.
有人有什么想法/想法吗?
谢谢!
解决方法:
仅在布局后才会更新第一个可见位置.您不能调用notifyDatasetChanged()并立即获得第一个可见位置,必须等待下一个布局传递.