android-getFirstVisiblePosition()在Gallery View中返回错误的值

我有一个使用扩展BaseAdapter的SimpleAdapter创建的Gallery视图.它包含的项目超出了屏幕所能容纳的范围.

所以我正在使用Gallery.getFirstVisiblePosition()和Gallery.getLastVisiblePosition()来获取第一个和最后一个可见位置.但是这些函数并不总是返回正确的值,尤其是在通过调用mGallery.setSelection()并随后调用SimpleAdapter.notifyDataChanged()设置选定位置之后.大多数情况下,即使第一个元素不可见,它的getFirstVisiblePosition()也会返回0.

另请注意,没有.纵向和横向模式下“图库”中可见项目的数量有所不同. getFirstVisiblePosition()返回的值在横向上看起来正确,但在纵向模式下返回错误.

有人有什么想法/想法吗?

谢谢!

解决方法:

仅在布局后才会更新第一个可见位置.您不能调用notifyDatasetChanged()并立即获得第一个可见位置,必须等待下一个布局传递.

上一篇:更改ArrayAdapter ListView Android中的特定行


下一篇:android-EditText将不会显示在ListView上方