安卓如何像Duolingo App一样水平滑动项目

3
我曾尝试实现类似Duolingo Activity中水平课程列表的滑动功能。这里是该功能的屏幕截图链接:LINKScreenshot 使用水平滑块时,滑动没有这样的效果。正确的实现此类UX滑动小部件的方法是什么?
我能否通过添加过渡效果来自定义默认的ListView?或者可以使用CardView吗?是否有一些外部库提供了这种功能,例如twoway-view
2个回答

4
使用经典的ViewPager展示内容,然后将此PageTransformer应用于pager:
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            mPager.setPageTransformer(false, new ViewPager.PageTransformer() {
                @Override
                public void transformPage(View page, float position) {
                    final float normalizedposition = Math.abs(Math.abs(position) - 1);
                    page.setScaleX(normalizedposition / 2 + 0.5f);
                    page.setScaleY(normalizedposition / 2 + 0.5f);
                }
            });
        }

1
我也是这么想的。那肯定是一个带有自定义PageTransformer的ViewPager。另外,不要忘记在您的Pager适配器上覆盖getPageWidth并返回类似于0.8f的内容。 - Budius
MiroM非常接近我正在寻找的东西。而Budius使用覆盖getPageWidth进行缩放也可以,但是我的片段现在没有居中。每次我滑动ViewPager时,片段都会粘在显示器的左边距上。最后一个片段保持缩放状态。 - RenatoIvancic
好的,所以我使用了自定义的PageTransformer,但没有重写 getPageWidth。我在居中方面遇到了问题,最后一个片段没有正确响应。相反,我在布局文件中为ViewPager添加了填充,并使用了android:clipToPadding。从链接获取了解决方案的另一部分。 - RenatoIvancic

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接