好的,我有一个问题。我用 jfeinstein10 的库实现了一个 SlideMenu。我正在使用 startActivity() 和 Intents 在不同的项目(所有 FragmentActivities)之间切换。对于正常的过渡,我使用的是 overridePendingTransition。几乎所有 Activity 都是带有来自 Jake Wharton 的 TabPageIndicator 的 ViewPagers。
问题是我正在使用带有动画的自定义布局(Google Now 卡片样式)。一张向上滑动和一张向下滑动动画。我扩展了 LinearLayout 并为循环遍历子项(卡片)的动画并为每个子项启动动画。这些卡片是添加到自定义 LinearLayout 的 RelativeLayouts。
我的想法是,在启动应用程序后,卡片从按钮向上滑动(类似于 Google Now),当我切换 Activity 时,卡片从当前 Activity 向下滑动,然后现在空白的 Activity 切换到带有淡入淡出的新 Activity (通过 overridePendingTransition) 和来自新 Activity 的卡片向上滑动。
我尝试将 onGlobalLayoutListener 用于向上滑动的内容,但这在 ViewPager 中表现得很奇怪(第一个选项卡向上滑动,第二个保持不变,第三个也向上滑动)。动画应该只在启动应用程序或在 Activity 之间切换后出现。
对于滑下动画我一点头绪都没有。我尝试在我的自定义布局中创建一个附加方法并使用 onPause() 启动它 - 根本不起作用。
所以我想问问有没有人有想法?或者这可能吗?这个问题真的让我抓狂:D
编辑:
http://pastebin.com/8mDefv50我的现在布局
还有这个 https://github.com/jfeinstein10/SlidingMenu/blob/master/example/src/com/slidingmenu/example/fragments/ResponsiveUIActivity.java 基本上是我的基本用户界面(与 content_frame 相同的方法并检查 menu_frame)。菜单本身包含一些启动不同 FragmentActivities 的按钮。
FragmentActivities 只管理 ViewPager。真正的内容和 NowLayout 在 ViewPager 的 Fragment 中使用。
所以我的问题是以一种很好的方式访问 MenuFragment 中的动画。主要是获得 NPE,因为切换是在仅包含按钮的 MenuFragment 中完成的。也许我的吸收速度很慢,或者我只见树木不见森林 :D
最佳答案
您应该在为新 Activity 调用 Intent 之前执行的向下滑动动画 - 不要在 onPause() 上执行,因为为时已晚。
因此,当您需要从当前 Activity 前进或后退时 - 执行向下滑动动画,在此动画结束时放置一个监听器,然后才根据需要执行 finish()/startActivity()。
关于android - 在 Activity 之间切换的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15394233/