我一直在关注将ViewPager.Transformer应用于我的ViewPager的教程。您会注意到Chris Basha只在viewpager中为2个片段编写了一个教程 - 我想在我的viewpager中使用3个片段:
我只想将我的视图片段中片段右侧的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>
当我从第1页移到第2页再返回时,上面的代码就像一个魅力。文本从右向左移动然后再向后移动,并以不同的速率加速到取景器的移动。
当我从第1页 - 第2页 - 第3页移动,然后再次从第3页 - 第2页 - 第1页开始时,两个文本视图似乎不会回到原始位置。事实上,textview包含单词&#34; Hello&#34;甚至没有显示出来&#34;你好吗?&#34;不再正确对齐:
当从第1-2-3页到第3-2-1页时,如何让两个textView都回到原来的位置?