gpt4 book ai didi

android - 具有多个 PageTransformer 的 ViewPager(运行时的 PageTransformer)

转载 作者:太空宇宙 更新时间:2023-11-03 10:18:11 27 4
gpt4 key购买 nike

我对 ViewPager 有一个自定义要求。我想要的是我的寻呼机应该有一个像 DepthPageTransformer 这样的水平 pageTransformer默认。现在在屏幕上我有一个按钮,我希望我的当前页面从底部滑动到顶部,我的下一页将它替换为 VerticalPageTransformer。一旦页面发生变化,页面转换器应该改回默认的 DepthPageTransformer。

所以基本上我想在运行时应用 pageTransformers。感谢您的帮助。

这是我的代码:

//sets intial page transformer
viewPager.setPageTransformer(false,new DepthPageTransformer());

现在,当我在其 onCLick 中点击按钮时,我有:

//sets vertical page transformer
viewPager.setPageTransformer(false,new VerticalPageTransformer());
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);

然后在我的 onPageSelected() 中将其设置回初始值

@Override
public void onPageSelected(int position) {
viewPager.setPageTransformer(false,new DepthPageTransformer());
}

这听起来很容易和正确,但页面转换一点也不流畅。他们行为怪异。页面在时间收缩。页面变化之快,让人根本看不出变化。

为@Mimmo 编辑:更改 attached

最佳答案

这不是我一生中最好的项目,但您可以下载此 zip file 找到引用实现.这是我基本上使用过的 Android Studio 项目:

mPager.beginFakeDrag()
mPager.fakeDragBy(float val);
mPager.endFakeDrag();

结合动画来模拟 ViewPager 的平滑滚动。 ViewPager 有一个默认的 DepthPageTransformer 5 页。当您单击底部的“单击我”按钮时,一个页面将添加到 ViewPager,PageTransformer 将更改为 FlipVerticalTransformer,并使用我之前提到的方法执行拖动。

我做了一些 changes添加到代码中以实现 VerticalSlide。我相信现在可以接受答案了:)

关于android - 具有多个 PageTransformer 的 ViewPager(运行时的 PageTransformer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31653354/

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