2

ViewPager.Transformer を ViewPager に適用する方法については、このチュートリアルに従っています。Chris Basha がビューページャーで 2 つのフラグメントのチュートリアルしか書いていないことに気付くでしょう。ビューページャーで 3 つのフラグメントを使用したいのです。

https://medium.com/@BashaChris/the-android-viewpager-has-become-a-fairly-popular-component-among-android-apps-its-simple-6bca403b16d4

ビューページャー内のフラグメントの右側から2つのtextViewを左側に移動したいだけです。ビューページャーには 3 つのフラグメントがあります。

これが私のコードです:

private class TranslationPageTransformer implements ViewPager.PageTransformer {

    @Override
    public void transformPage(View view, float position) {
        int pageWidth = view.getWidth();

        if (position < -1) { // [-Infinity,-1)
            // This page is way off-screen to the left.
            view.setAlpha(0);

        } else if (position <=1) { // [-1,1]

                hello.setTranslationX((float) (-(1-position) * 1.5 * pageWidth));
                howareyou.setTranslationX((float) (-(1-position) * 0.5 * pageWidth));
        }
        else {
            view.setAlpha(1);
        }
    }
}

ビューページャーのページ 1 ビューは次のとおりです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity$PlaceholderFragment">

<TextView style="?android:textAppearanceMedium"
    android:padding="16dp"
    android:lineSpacingMultiplier="1.2"
    android:layout_gravity="right"
    android:textStyle="bold"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/hello"
    />

<TextView style="?android:textAppearanceMedium"
    android:padding="16dp"
    android:lineSpacingMultiplier="1.2"
    android:layout_gravity="right"

    android:textStyle="bold"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/howareyou"
    />

</LinearLayout>

レイアウト

ページ 1 からページ 2 に移動して再びページに戻ると、上記のコードは魅力的に機能します。テキストは右から左に移動してから再び元に戻り、ビューページャーの動きとは異なる速度で加速します。

ページ 1 - ページ 2 - ページ 3 から移動してから、ページ 3 - ページ 2 - ページ 1 に移動すると、2 つのテキストビューが元の位置に戻らないようです。実際、「こんにちは」という単語を含むテキストビューは表示されず、「お元気ですか?」はもはや右揃えではありません:

ここに画像の説明を入力

page1-2-3 から page3-2-1 に移動するときに、両方の textView を元の位置に戻すにはどうすればよいですか?

4

0 に答える 0