我正在使用一些Fragment,但是当从一个Fragment切换到另一个Fragment时,过渡动画很卡顿,有时甚至会跳过整个动画(我读过的文章中说这有时是Fragment性能差的结果)。
非常有趣的是,该Fragment中的所有数据获取和计算都完全异步地使用了放置在计算线程上的协同程序。而且包含数据的数组列表甚至不是很长或具有许多参数。我在UI线程上做的唯一事情就是将最终列表设置到RecyclerView Adapter上并调用notifyDataSetChanged()->就是这样!因此,我的结论是ViewHolder膨胀本身才是导致卡顿的原因。ViewHolder的布局XML也非常简单(drawable资源和三个字符串)。
在Fragment事务方面,我使用一组自定义的XML对象动画器将当前Fragment替换为新Fragment,并进行提交。
我看到一些答案说我应该延迟约2秒钟设置Adapter上的项,但见鬼,对于最终用户在该Fragment中导航并等待白屏显示数据突然出现的情况,这看起来非常糟糕。我希望平稳的60fps过渡到新的Fragment,同时已经显示出数据。
这个问题在安卓上是否可行?我不是苹果的粉丝,但就动画流畅度而言,iOS设备在这方面完爆了混乱的安卓。
我需要任何形式的建议或示例来展示如何解决这个问题。
谢谢!