gpt4 book ai didi

Android ViewPager2 setPageMargin 未解决

转载 作者:太空狗 更新时间:2023-10-29 13:44:52 30 4
gpt4 key购买 nike

我想使用 View Pager2 实现 Carousel,像这样预览左右页面:

enter image description here

最初我使用的是支持的view pager1。现在我认为它被删除了

    viewPagerhost.setPageMargin(20);

知道我们如何使用 View Pager 2 实现这一点

最佳答案

MarginPageTransformer 无法满足您的需求。

您必须使用自定义 setPageTransformer


第一步

这是我的扩展方法。

您可以在这篇文章中查看详细信息 Medium article

fun ViewPager2.setShowSideItems(pageMarginPx : Int, offsetPx : Int) {

clipToPadding = false
clipChildren = false
offscreenPageLimit = 3

setPageTransformer { page, position ->

val offset = position * -(2 * offsetPx + pageMarginPx)
if (this.orientation == ViewPager2.ORIENTATION_HORIZONTAL) {
if (ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL) {
page.translationX = -offset
} else {
page.translationX = offset
}
} else {
page.translationY = offset
}
}

}

第二步

根据您的用例设置 pageMarginPx 和 offsetPx。

<resources>
<dimen name="pageMargin">20dp</dimen>
<dimen name="pagerOffset">30dp</dimen>
<dimen name="pageMarginAndoffset">50dp</dimen>
</resources>

第三步

在您的 xml 中设置布局项的边距。

像这样

    <androidx.cardview.widget.CardView
app:cardCornerRadius="12dp"

android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"

android:layout_marginLeft="@dimen/pageMarginAndoffset"
android:layout_marginRight="@dimen/pageMarginAndoffset"

android:layout_width="match_parent"
android:layout_height="match_parent">

关于Android ViewPager2 setPageMargin 未解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56114430/

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