【问题标题】:Android jfeinstein10/SlidingMenu's animation is not smooth when changes fragmentAndroid jfeinstein10/SlidingMenu的动画在更改片段时不流畅
【发布时间】:2013-09-10 08:15:12
【问题描述】:

我使用 jfeinstein10/SlidingMenu 作为我的应用程序的滑动菜单,滑动菜单将为活动更改不同的片段。当片段仅包含一两个项目时,它看起来不错。但是如果我试图让片段包含更多的东西,当我更改片段时,滑动菜单将短暂停止。动画不流畅

有没有办法解决这个问题?谢谢。

【问题讨论】:

  • 确定我是否理解您的问题是当片段有很多对象时动画不流畅?
  • @subspider 是的,这就是问题所在
  • 你是如何测试的?设备还是模拟器?如果是设备,请注意它在不同设备中的行为可能会有所不同。
  • @subspider 谢谢。我在nexus4或samsung S3等设备上进行了测试,我认为设备的能力已经足够了。我发现其他一些应用程序可以顺利改变,但我不知道他们是否使用这个库。
  • 你解决了这个问题吗??

标签: android android-ui slidingmenu


【解决方案1】:

当我显示重片段时,我会遇到同样的动画延迟。 我试图用动画关闭菜单并同时用动画显示片段。即使使用原生抽屉,动画也很滞后。

所以要走的路是:

  1. 设置 menuOnClose 监听器

  2. 在菜单项上单击记住选择

  3. 关闭菜单

  4. 在 onCloseListener 中显示片段。

这对我很有用。

【讨论】:

  • 谢谢,我试过了,没问题,但是菜单关闭后刷新视图也需要一些时间,有什么优化的吗?
  • 我也想消除这种延迟,但仍然没有找到办法。我昨天尝试的另一种方法:更改片段,然后关闭菜单。这种方式稍微加快了用户体验(老实说 - 关闭和更改片段的时间是相同的,但更改片段之间的延迟不太明显)。要做到这一点: 1. 覆盖 Fragment 的 onCreateAnimation 并向其添加侦听器并在其中添加动画侦听器。 2. 在那个 onAnimationEnd() 监听器关闭菜单中。
  • 你能提供你刚才所说的示例代码吗?
【解决方案2】:

我对此有一个有点笨拙的解决方案,但它工作正常。 我为我的片段使用了一个基类,称为BaseFragment。在这个类中,我覆盖了onResume 方法并在菜单显示时关闭它:

@Override
public void onResume() {
    super.onResume();

    if(sm.isMenuShowing()){
        sm.showContent();
    }
}

sm 是来自SlidingFragmentActivitySlidingMenu 的引用。

这将使动画更流畅,但会在单击菜单按钮和关闭动画开始之间产生一小段延迟。就我而言,这比动画在动画中间停止时效果更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    相关资源
    最近更新 更多