是否可以使用ViewPager执行此Android屏幕动画?

500*_*865 13 android android-animation android-fragments android-viewpager

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


          Screen 1                                    Screen 2
 -----------------------------              ------------------------------
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|       List 1      |  List2  | ---------> | List 3 |      List 4         |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
 -----------------------------              ------------------------------

  • 用户长按一下列表1中的项目,然后从左向右滑动.
  • 包含列表1的视图从左向右移动(直到屏幕的末尾)并淡出.屏幕2显示.

是否可以使用ViewPager?如果是,怎么样?

我想这样做ViewPager是因为我使用Fragments非常广泛而且我已经实现了许多屏幕作为片段.

如果有人需要澄清动画或用户界面,请告诉我.

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

Ent*_*eco 3

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

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

Android 清单.xml

<activity android:name=".Screen1" android:theme="@style/Animated"></activity>
<activity android:name=".Screen2"></activity>
Run Code Online (Sandbox Code Playgroud)

你的主题.xml

<resources>
    <style name="Animated">
        <item name="android:windowAnimationStyle">@style/Animation.ScreenAnimation</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

最后,在你的 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>
Run Code Online (Sandbox Code Playgroud)