如何在ViewPager位置偏移更改时为视图设置动画

时间:2014-03-14 10:18:55

标签: android animation

我们想创建一个带有动画的应用程序简介,用户可以滚动浏览页面,并且当用户滚动时,视图会被动画化并遍历所有幻灯片。动画视图应该在用户滚动时移动,因此如果用户滚动得更快,动画视图应该移动得更快,如果用户滚动回到上一页,动画视图应该向后移动。

这在使用https://github.com/IFTTT/JazzHands的iOS中非常简单,但我无法在Android中找到解决方法。

我发现的问题:

  • 动画实时运行;你不能让时间成为ViewPager偏移量。
  • FragmentPagerAdapter中,一个片段的视图无法移动到另一个片段。

有什么建议吗?谢谢。

2 个答案:

答案 0 :(得分:5)

这是部分答案。这是第一个问题。

  • 动画实时运行;你不能让时间成为ViewPager偏移量。

我可以在onPageScrolled的{​​{1}} OnPageChangeListener方法中更改动画视图的属性。

这是一个简单的例子,可以更改动画视图的左边距,使其向右移动。

ViewPager

但是第二个问题没有解决。当视图到达页面的右侧时,它会消失。换句话说,视图无法移动到下一页(片段)。

答案 1 :(得分:4)

对于第二个问题:

当不再需要视图时,viewPagerAdapter将销毁视图,以便通过所需的所有页面将视图保持可见,并将其添加到包含ViewPager的布局中。

这样的事情可行:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white_transparent"
        />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text out of view pager"
        android:textSize="25sp"
        />
</RelativeLayout>