7

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

では、ここで何が起きているのでしょうか。

4

0 に答える 0