Skip to content

9、历史版本介绍

YoKey edited this page Nov 25, 2016 · 2 revisions

新版本0.7有什么新变化?

0.7版本有一些重大变化,下面是几个重要改变:

  • 新的Demo- 添加一个仿新版知乎的新Demo,展示复杂嵌套Fragment的交互场景,强烈推荐查看。

  • 全新的Fragment恢复机制- 页面在被强杀重启后,恢复Fragment的机制进行了升级,现在可以恢复嵌套的Fragment、同级的Fragment(类似微信主页的show、hide),任何情况下都不需要担心你的Fragment会重叠了!并且总是会恢复到在被强杀前的那个Fragment!

  • 更容易的编写各种嵌套Fragment的代码- 现在你只需在Activity/Fragment中通过loadRootFragment(containerId,fragment)系列方法,装载根Fragment,那么通过该根Fragment start()的新Fragment,和根Fragment处于同一个栈层级。所以只要利用这2个方法,就可以轻松编写出复杂嵌套的Fragment代码。

  • 支持同级Fragment的处理- 添加loadMultipleRootFragment(R.id.fl_container, int showPosition, SupportFragment... fragments)方法,支持类似微信、QQ主页的Fragment形式,即show、hide形式,并且即使发生页面被强杀的情况,在恢复后库也会帮你恢复到离开前的那个Fragment,相关使用方法见这里使用场景- 同级Fragment的使用(类微信主页),也可见新Demo中的MainActivity。

  • 实验性支持SharedElement-Material过渡动画- 现在通过SupportFragment的startWithSharedElement()以及startForResultWithSharedElement()可以使用Material过渡动画,因为SharedElement仅良好支持replace(),而库中启动Fragment基本都是add(),所以目前该MD过度动画在进栈时是正常的,出栈则使用普通动画;后续继续维护...

  • 修复BUG- 1、修复onBackPressedSupport(),在0.7之前,该方法传递顺序是从上层传递到下层,难以使用和理解;现在修改为类似Android事件分发机制的onBackPressedSupport(),传递顺序从下层到上层,具体查看这里使用场景- Back键的事件传递机制; 2、修复在嵌套多层Fragment时,logFragmentStackHierarchy(TAG) log排版不正确的问题。

如何从0.7之前的版本迁移?

  • SupportFragment的onCreateFragmentAnimation()改名为onCreateFragmentAnimator(),和SupportActivity保持一致;

  • 所有的Activity装载根Fragment的代码,请由start()更改为loadRootFragment(int containerId, SupportFragment rootFragment),移除了

@Override
public int setContainerId() {
    return R.id.fl_container;
}

,containerId移至loadRootFragment()中。