簡體   English   中英

微調頁面回收視圖以提示下一頁而無需切換

[英]Nudge a paged recyclerview to hint at next page without switching

我正在使用帶有LinearLayoutManager和PagerSnapHelper的水平recyclerview,每個視圖持有者/頁面都是全屏的,並且捕捉到窗口,因此一旦安放下來就只能看到一頁。 像大多數全屏可滑動標簽一樣。

在當前頁面之后插入新頁面時,我想臨時顯示/提示它的存在而不會快速滾動/滾動到該頁面,即,以便用戶知道他們打開了一個新頁面,並且如果要查看它而又沒有強迫他們實際進入該頁面查看它。

因此,如果在釋放之前開始稍稍拖動手指以露出下一頁並將其彈回到起始頁,將具有相同的效果。

我怎樣才能做到這一點? 謝謝

我還沒有用RecyclerView完成它,但是我設法在ViewPager上做了類似的事情。 基本上,您可以將ValueAnimator與CycleInterpolator一起使用,以稍微滾動RecyclerView每幀,然后向后滾動。 由於滾動位置隨每一幀更新,因此我認為這不應與捕捉沖突:

val startX = recyclerView.getScrollX().toFloat()
    val endX = startX + Utils.dpToPx(context, 100) // the amount you want to scroll in pixels


    val animator = ValueAnimator.ofFloat(1f, 0f)
    animator.cancel()
    animator.interpolator = CycleInterpolator(0.5f)
    animator.startDelay = 600
    animator.duration = 600
    animator.addUpdateListener { animation ->
        val alpha = animation.animatedValue as Float
        recyclerView.scrollTo((startX * alpha + (1f - alpha) * endX).toInt(), 0)
    }
    animator.start()

這可以在ViewPager上使用,並且也可以在RecyclerView上使用,因為它具有相同的滾動方法...

recyclerView.smoothScrollBy(nudgeDistanceInPx, 0);

在PagerSnapHelper插入之前,它將平滑滾動以顯示下一頁並將其返回到其起始位置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM