をViewPager
使用している がありPageTransformer
ます。を使用して、スクロールするたびにPageTransformer
内部のカードの高さをアニメーション化しています。ViewPager
コードは次のとおりです。
mViewPager.setPageTransformer(false, new ViewPager.PageTransformer() {
@Override
public void transformPage(View page, float position) {
View card = ((ViewGroup)page).getChildAt(0);
CardView cardView = (CardView) card;
float absoluteValue = Math.abs(position);
if (absoluteValue < 1.3f) {
float scale = 1.3f - absoluteValue;
float scaleElevation = scale * 10f;
cardView.setCardElevation(scaleElevation);
//cardView.setElevation(scaleElevation);
Log.d(TAG, "scaleElevation: " + scaleElevation + ", position: " + position);
}
}
});
かなり簡単です。ここで、スクロールすると、定義された倍率とスクロール内の位置を使用して標高が「アニメーション化」されます。しかし、何が起こるかというと、新しいページへのスクロールを終了すると、影に一種の「スナップ」効果があります.
問題を明確に示すビデオは次のとおりです: https://gfycat.com/FlakyWarlikeEgg
では、ここで何が起きているのでしょうか。