2

好的,我有一个问题。我用 jfeinstein10 的库实现了一个 SlideMenu。我正在使用 startActivity() 和 Intents 在不同的项目(所有 FragmentActivities)之间切换。对于正常的转换,我使用 overridePendingTransition。几乎所有的活动都是来自 Jake Wharton 的带有 TabPageIndicator 的 ViewPagers。

问题是我正在使用带有动画的自定义布局(Google Now 卡片样式)。一张上滑下一张动画。我扩展了LinearLayout,对于动画,我循环遍历孩子(卡片)并为每个孩子启动动画。这些卡片是添加到自定义 LinearLayout 的 RelativeLayouts。

我的想法是,在启动应用程序后,卡片从按钮向上滑动(像 Google Now 一样),当我切换活动时,当前活动的卡片向下滑动,然后现在空白的活动切换到带有淡入淡出的新活动(通过 overridePendingTransition)新活动中的卡片向上滑动。

我尝试使用 onGlobalLayoutListener 向上滑动的东西,但这在 ViewPager 中表现得很奇怪(第一个选项卡向上滑动,第二个保持原样,第三个也向上滑动)。动画应该只在启动应用程序或在活动之间切换后出现。

对于向下滑动的动画,我完全不知道。我尝试在我的自定义布局中创建一个附加方法并使用 onPause() 启动它 - 根本不起作用。

所以我想问问有没有人有想法?或者这有可能吗?这个问题真的让我发疯:D

编辑:

http://pastebin.com/8mDefv50我的 NowLayout

这个 https://github.com/jfeinstein10/SlidingMenu/blob/master/example/src/com/slidingmenu/example/fragments/ResponsiveUIActivity.java 基本上是我的基本 ui(与 content_frame 相同的方法并检查 menu_frame)。菜单本身包含一些按钮,它们启动不同的 FragmentActivity。

FragmentActivity 只管理 ViewPager。ViewPager 的 Fragment 中使用了真实的内容和 NowLayout。

所以我的问题是以一种很好的方式访问 MenuFragment 中的动画。主要是获得 NPE,因为切换是在仅包含按钮的 MenuFragment 中完成的。也许我的吸收速度很慢,或者我错过了森林的树木:D

4

1 回答 1

1

您应该在为新活动调用 Intent 之前执行向下滑动的动画 - 而不是在 onPause() 上执行,因为为时已晚。

因此,当您需要从当前 Activity 前进或后退时 - 执行向下滑动动画,在此动画的末尾放置一个侦听器,然后根据需要执行 finish() / startActivity()。

于 2013-03-13T21:10:12.277 回答