class ViewPagerCardTransformer : ViewPager.PageTransformer {
override fun transformPage(page: View, position: Float) {
if (position >= 0) {
page.scaleX = 0.9f - 0.05f * position
page.scaleY = 0.9f
page.alpha = 1f - 0.3f * position
page.translationX = -page.width * position
page.translationY = -30 * position
} else {
page.alpha = 1 + 0.3f * position
page.scaleX = 0.9f + 0.05f * position
page.scaleY = 0.9f
page.translationX = page.width * position
page.translationY = 30 * position
}
}
}
片段中的代码:
val adapter = MyPagerAdapter(pageItems)
viewPager.adapter = adapter
/*below line will increase the number of cards stacked on top of
each other it is set to 1 by default. don't increase it too much as you
will end up with too much view page items in your memory
*/
mDaysViewPager.offscreenPageLimit = 3
viewPager.setPageTransformer(true, ViewPagerCardTransformer())
5条答案
按热度按时间tcomlyy61#
要实现此垂直视图分页器而不依赖任何库,请执行以下步骤:
1.在您的activity_main.xml中
1.在您的查看页内容.xml中
您可以根据上图创建您想要的设计。
1.创建适配器和模型类来保存数据。
4.在MainActivity.java中,在设置适配器和pageTransformer之后添加以下代码。
有关详细参考,您可以观看此视频:CLICK HERE
希望你能得到你所需要的输出!!
4szc88ey2#
上面的解决方案都不适合我。这是我的解决方案:
我的页面转换器类:
片段中的代码:
zy1mlcev3#
您可以使用the SwipeStack library,它完全符合您的要求--它基本上是一个视图组,根据适配器实现膨胀视图,将它们一个放在另一个的顶部。
li9yvcax4#
神奇之处就在这里https://github.com/yuyakaido/CardStackView。你可以很容易地定制你想要的。快乐编码:)
h6my8fg25#
我正在使用此代码的垂直卡视图堆栈
https://github.com/AndroidDeveloper98/StackViewPager