android - ViewPager setCurrentItem 幻灯片

标签 android android-fragments

我有一个包含 ViewPager 的 Activity,此 ViewPager 中的第一个 Fragment 包含 ListView,当我单击任何 Item 时,它会用选定的一个替换此 Fragment, 我使用 setCurrentItem(selectedItem,true)//平滑滚动 但是 ViewPager 在选定 fragment 之前滑过所有 fragment 我希望它只滑到选定的 fragment 而不是所有 fragment 我试着像那样使用 PageTransfrom.transformPage

@Override
public void transformPage(View page, float position) {
    int currentItem = viewPager.getCurrentItem();
    if (currentItem != selectedItem)
        page.setVisibility(View.GONE);
}

但没有运气

最佳答案

一个可能的解决方案是修改 PagerAdapter 以始终在项目 #2 上返回您想要的页面。

当点击第一页的任何项目时,首先更改 PagerAdapter 的方法 getItem(int position) 的实现,(如果您的 PagerAdapter 在同一个类文件中实现,这很容易您的代码),以在 position == 2 时返回您想要的页面,然后调用 setCurrentItem(2, true)。这可以直接平滑滚动到所选页面。您可能还需要更改 getCount() 以将计数限制为仅 2,否则下一页可能不是预期的页面。

但此方法会关闭其他页面。用户只能滚动回第一页,然后导航到另一页。如果您想通过手动滚动(而不是通过点击)保持页面的自然顺序,您可以在 scoll(通过点击)停止后将 getItem(int position) 恢复为默认实现,并重新加载通过调用 setCurrentItem(position, false) 将当前页面停止到自然顺序(立即,这次不顺利),然后用户可以手动来回滚动。

关于android - ViewPager setCurrentItem 幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30015750/

相关文章:

android - 当手指在 ImageView 上滑动时如何查找触摸事件

Android - 表单

android - 单击几次后 SoundPool 不播放声音

带有 Viewpager : go back to the previously selected fragment 的 Android 向上按钮

android - 从容器中移除 fragment 后,Fragment.isAdded 返回 true

android - 添加/替换 fragment 的任何代码改进

java - Android 菜单在错误的地方膨胀

android - 在 Firebase 云消息传递中将一个项目用于多个应用程序的优缺点

Android:查看返回空值

Android: extends TabActivity deprecated,什么时候会出问题?