2016-02-04 60 views
1

我有一個RecyclerView其中每個項目是一個縮略圖實現爲壁畫DraweeView。根據屏幕的大小,最初的縮略圖有時會在首次加載RecyclerView時「裁剪」(這是正確的)。RecyclerView幻燈片動畫無剪裁最後一項

我實現了動畫,在初始加載時從RecyclerView向右滑動。我的動畫使用了OvershootInterpolator,這就是問題所在:當過衝發生時,最後一個「剪輯」項目離開屏幕邊緣,暴露縮略圖比之前的縮略圖更窄(注意,RecyclerView的正常滾動沒有這個問題)。

這裏是我的slide_in_animation.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate 
     android:duration="700" 
     android:fromXDelta="100%" 
     android:toXDelta="0%" /> 
</set> 

這裏是代碼的加載動畫部分:

final Animation slideIn = AnimationUtils.loadAnimation(context, 
    R.anim.slide_in_animation); 
// overshoot slightly further than the default tension of 2.0f 
slideIn.setInterpolator(new OvershootInterpolator(2.5f)); 
myRecyclerView.startAnimation(slideIn); 

有什麼辦法讓最後一個項目,這只是上部分可見當使用OvershootInterpolator進行動畫時,初始加載時的屏幕會完全可見?

感謝您的幫助!

回答

0

這是我想出的解決方案。希望其他人可以從中受益:

1)使用具有RecyclerView的容器的LayoutParams將容器寬度設置爲當前寬度的1.5倍。
2)做滑入動畫
3)動畫使容器寬度在步驟1之前(減小當前寬度1.5倍)。