片段动画的Android最佳做法

时间:2017-10-27 05:52:30

标签: android android-fragments animation

我有两个标签的活动。两个选项卡使用不同的片段当某个特定事件发生时,如用户点击项目,我将在同一活动中打开另一个片段。

我知道如何动态添加片段,我也知道如何设置它的动画。

在这里,我如何在我的活动中将片段添加到frameLayout

transaction.setCustomAnimations(R.animator.object_slide_in_up, R.animator.activity_hold)
transaction.add(R.id.flSellerHome, fragment)
transaction.commit()

在模拟器和新手机中一切正常。我已经使用api 25进行了模拟器测试,它现在可以正常闪烁发生,当我用真实设备测试它时,api 23闪烁一点,所以它没有影响,之后当我用api 19测试它时,它闪烁太多了。

所以我的问题是做动画的最佳做法。

备注

  • 我动态添加的第三个片段包含recylerview,其中包含来自本地db的大约20个项目,我还在后台线程中完成了db fatching。

  • 主线程无负载。 recyclelerview也很简单,有一个Image和三个文本。

  • 图像也是使用Glide加载的,而且我还有滑动的覆盖功能**

任何帮助表示赞赏..

3 个答案:

答案 0 :(得分:8)

我发现问题在于recyclerview数据更新。

我在后台线程中加载数据,但是当通知recyclerview时,它会停留很短的时间。

所以我所做的就是。我延迟了数据加载的时间与动画相同。

我不知道这是好主意还是坏主意。但是我的项目为时已晚,所以我使用了这种解决方法。

答案 1 :(得分:1)

我想给你的答案写评论,但我没有足够的代表,但我想尝试给你一些建议,对不起。

  

我正在后台线程中加载数据,但是当通知recyclerview时,它会停留很短时间。

在点击并显示简单的ProgressBar后尝试开始加载,加载数据后,隐藏进度条,将信息设置为片段,然后显示片段。然后,您将获得附加时片段所需的所有数据,并将其(数据)放入适配器。

它必须看起来很好。

答案 2 :(得分:-3)

如果仅针对API 19及更低版本发生,则可能是设备缺乏性能。

也许问题不是来自碎片和动画,而是来自另一个减慢UI线程的功能。根据功能,我的意思是您的片段一起通信的方式。他们共享大量数据吗?还是重量级数据?如果是这样,您应该使用异步任务或线程。

祝你好运!