我想在彼此下方显示3个片段。到目前为止,我已经使用了许多解决方案,例如YViewPager和答案,例如Android: Vertical ViewPager。他们的主要问题是没有他们按照我想要的方式工作。我需要显示第一个片段,并在其下显示第二个片段的一部分,并且当用户滚动到下一个片段时,显示第二个片段和第三个片段的某些部分。
YViewPager很棒,直到我添加以下行以显示第二个片段的某些部分:

viewPager.setClipToPadding(false);
viewPager.setCurrentItem(1);
viewPager.setPadding(0,0,0,500);


在那之后,它变成了这样:android - 带有 fragment 的垂直ViewPager-LMLPHP

凭空出现的空白。
至于告诉我交换运动事件的其他图书馆和黑客:

private MotionEvent swapXY(MotionEvent event) {
    float width = getWidth();
    float height = getHeight();

    float newX = (event.getY() / height) * width;
    float newY = (event.getX() / width) * height;

    event.setLocation(newX, newY);
    return event;
}


并且还要重写PageTransformer
在这里,一切都很好,直到我想从第二个片段到第一个片段为止。它想将alpha设置为0以开始转换,但这会导致第三个片段突然消失,如下所示:

android - 带有 fragment 的垂直ViewPager-LMLPHP

好吧,这是我的问题:

是否有没有这些问题就能实现这种观点?
您是否建议其他方法?

先感谢您。

最佳答案

我认为您可以使用RecyclerView和SnapHelper轻松实现上述行为。这是一个链接,您可以在其中找到某些来源的解释https://rubensousa.github.io/2016/08/recyclerviewsnap

10-08 03:06