我正在尝试创建一个Velocity View Pager,我可以在其中滚动浏览图库中的页面。我在进行滚动计算时遇到问题。我正在为ViewPager使用FragmentStatePagerAdapter。对于正常的第一次运行,事情很酷,getScrollBy返回实际滚动位置,第一个元素为0.即如果我在第3页,getScrollX返回2400(每页800px),依此类推。
当我从backstack获得简历后获取托管viewpager的片段时出现问题。这次我的第3页变为0,我的第一页变为-2400位置。一些如何当android重新定义适配器时它将当前位置视为0.我已经尝试了使用setCurrentItem的所有排序。我觉得computeScroll不起作用。
如果任何人都可以建议如何让getScrollX返回位置,考虑start为0而不是新膨胀的当前位置,这将是很好的。
否则我每次恢复时都无法创建新片段。
答案 0 :(得分:1)
你知道目前的位置,对吧?我使用ViewPager.getWidth()
将当前位置乘以ViewPager的宽度。由于2400是以像素为单位,因此您可以使用getWidth()
中的宽度(以像素为单位)来确定位置。
需要注意的一件事是确保在视图充气和测量后使用getWidth()
值,否则宽度将返回零。