3

下の画像のように、左右両方からページャーのアニメーションを表示したいです。3ページあります。真ん中は動かしてはいけません。左または右に移動すると、左または右のページのみがスクロールし、中央の画面が少しフェードします。

ビューページャーでPageTransformerクラスのtransformPage(View view, float position)メソッドをオーバーライドしてアニメーションを作っています

 private final PageTransformer mPageTransformer2 = new PageTransformer() {
    @Override
    public void transformPage(View view, float position) {
        Log.d("CalViewPager", "transformPage: " + position );

        if (position < 0.0f ) {
            // Pin the left page to the left side.
            view.setTranslationX(getWidth() * -position);
            view.setAlpha(Math.max(1.0f - position, 0.0f));
        } else{
            // Use the default slide transition when moving to the next page.
            view.setTranslationX(0.0f);
            view.setAlpha(1.0f);
        }


    };

上記のコードは右側から正常に動作し、左側でも実行しようとしています。そこで、transform(View view, float position) メソッドの位置の値を理解しようとします。しかし、ビューでどのように変化するかわかりませんか?

右側を交換して各位置の値を 1 増やし、左側を 1 ずつ減らすとわかりました。

注: - 私の質問がわからなかったり、さらに説明が必要な場合はコメントしてください

4

1 に答える 1