ViewPager.PageTransformer转换ViewPager

时间:2015-05-01 10:15:47

标签: android android-fragments android-viewpager android-pagetransformer

我一直在关注将ViewPager.Transformer应用于我的ViewPager的教程。您会注意到Chris Basha只在viewpager中为2个片段编写了一个教程 - 我想在我的viewpager中使用3个片段:

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

我只想将我的视图片段中片段右侧的2个textViews移动到左侧。我的viewpager中有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);
        }
    }
}

这是viewpager的第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>

layout

当我从第1页移到第2页再返回时,上面的代码就像一个魅力。文本从右向左移动然后再向后移动,并以不同的速率加速到取景器的移动。

当我从第1页 - 第2页 - 第3页移动,然后再次从第3页 - 第2页 - 第1页开始时,两个文本视图似乎不会回到原始位置。事实上,textview包含单词&#34; Hello&#34;甚至没有显示出来&#34;你好吗?&#34;不再正确对齐:

enter image description here

当从第1-2-3页到第3-2-1页时,如何让两个textView都回到原来的位置?

0 个答案:

没有答案