gpt4 book ai didi

android - ViewPager setCurrentItem 幻灯片

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:26 26 4
gpt4 key购买 nike

我有一个包含 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com