13

我需要使用自定义动画制作 2 个屏幕,如下所述:

          屏幕 1 屏幕 2
 ----------------------------------------- --------- ---------
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| 清单 1 | 列表2 | ---------> | 清单 3 | 清单 4 |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
 ----------------------------------------- --------- ---------

  • 用户长按列表 1 中的项目并从左向右滑动。
  • 包含 List 1 的视图从左向右移动(直到屏幕的末尾)并逐渐消失。显示屏幕 2。

是否可以使用 来制作此动画ViewPager?如果是,如何?

我想通过这样做,ViewPager因为我Fragment非常广泛地使用 s 并且我已经将许多屏幕实现为片段。

如果有人需要关于动画或 UI 的说明,请告诉我。

更新:我能够在一个活动中实现这两个屏幕,我在这里部分解释。我可以在单个片段中实现相同的功能。但是能够Fragment在 a 中实现不同的 sViewPager仍然会有所帮助。

4

2 回答 2

3

ViewPager,我也是,似乎有点矫枉过正。除非您以后想添加更多屏幕,或者其他一些要求。对于这些简单的屏幕,您可以使用 ActivityAnimations 来完成。如果将 Screen1 和 Screen2 放在单独的 Activity 中,则可以使用简单样式为 Activity 设置动画。您无需编写代码,只需为您的活动定义 Enter 和 Exit 样式,它们就会被执行。

因此,除非您有其他使用 ViewPager 的原因,否则您可以通过以下方式实现相同的效果(未经测试):

安卓清单.xml

<activity android:name=".Screen1" android:theme="@style/Animated"></activity>
<activity android:name=".Screen2"></activity>

您的主题.xml

<resources>
    <style name="Animated">
        <item name="android:windowAnimationStyle">@style/Animation.ScreenAnimation</item>
    </style>
</resources>

最后,在你的 styles.xml

<style name="Animation"></style>
<style name="Animation.ScreenAnimation" parent="android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item>
    <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item>
    <item name="android:activityCloseEnterAnimation">@anim/slide_out_left</item>
    <item name="android:activityCloseExitAnimation">@anim/slide_in_right</item>
</style>
于 2011-11-15T13:08:45.163 回答
2

我之前在 ViewPagers 中成功使用了垂直 ListViews。在 ViewPager 中尝试水平滚动列表视图怎么样?

于 2011-11-16T23:30:33.650 回答