嵌套滑动活动

时间:2014-03-03 10:47:32

标签: android

我有3项活动,A,B,C。

从A导航到B,所以我想向左滑动A,向右滑动B. 当他们从B导航回A时,我想将B向右滑动,向左滑动A。

所以感觉他们只是像这样并排滚动3个窗格:

enter image description here

我正在尝试以样式执行此操作:

<style name="MyAnimation.WindowFromRight" parent="@android:style/Animation.Dialog">
    <item name="android:windowEnterAnimation">@anim/slide_in_left</item>
    <item name="android:windowExitAnimation">@anim/slide_out_right</item>
</style>

<style name="MyAnimation.WindowFromLeft" parent="@android:style/Animation.Dialog">
    <item name="android:windowEnterAnimation">@anim/slide_in_right</item>
    <item name="android:windowExitAnimation">@anim/slide_out_left</item>
</style>

<style name="ThemeFromLeft" parent="AppBaseTheme">
    <item name="android:windowAnimationStyle">@style/MyAnimation.WindowFromLeft</item>
</style>

<style name="ThemeFromRight" parent="AppBaseTheme">
    <item name="android:windowAnimationStyle">@style/MyAnimation.WindowFromRight</item>
</style>

但是,B的规则很复杂,因此它不适合上述任何一种样式。当C被带入时B向左滑动,当A被带入时向外滑动到右边。反之亦然,当B进入视野时。

我曾试图overridePendingTransition处理特殊情况,但似乎存在冲突,动画似乎更复杂,如果是这样的话?

所以我的问题是,这可以用样式来实现吗?

1 个答案:

答案 0 :(得分:1)

如果我理解这一点,我认为您最好使用ViewPager,并将您的3个活动转换为3个片段。但是,如果你的应用程序出于某种原因需要这3个活动,你可以通过调用overridePendingTransition(int,int)来实现你想要的。

请注意,第一个int是用于输入动画的预定义xml动画的资源ID,第二个int用于退出动画。在您的情况下,您需要创建4个动画文件(两个用于输入,2个用于退出)并在每个活动中使用适当的文件。您可以查看Android Left to Right slide animation