@
kmvan 按 Home 键返回默认是没有过场效果的,只有一个向底部的 Slide 啊,这个也接受不了啊?涟漪效果在立即启动一个新的 Activity 的时候你只能看到开始,甚至是看不到的,只有你在长按的时候或者你按下去需要一定时间来后台处理是才能看到,你可以去 Play Store 主页试试看。
我来解释一下我的视频:前提——良好的 Android App UI 必须是非阻塞的,也就是在后台加载的时候并不影响主线程的 UI。
以我的 Demo 为例:
1. 点击蓝色部分(一张图片)启用一个 Shared Element 过渡,耗时和 KitKat 及之前的 Fade 效果耗时是一样的。这部分并不浪费时间。
2. 绿色部分可能是标题,描述等,往往从数据库获得,并不在内存中,因此需要时间去加载,等加载完成出现一个从下的 Appending 效果。
3. 橘色部分可能是具体的 detail,往往不在数据库中,需要一个网络请求去获取,然后加入数据库再显示出来,因此速度最慢,所以最后加载,应用一个底部 Appending 的效果。
4. 红色 FAB 绝大多数情况下是一个 Like (赞)的按钮,自身是带有状态的(赞与不赞),也是需要从网络请求获取的(你可以考虑下多个终端的情况)。在从服务器获取信息前就显示一个状态是完全不优雅的。因此也是后来才加载的。
5. 说退出,FAB 和 绿色橘色部分首先消失完全是因为 Android L的一个问题:Shared Element 会覆盖一切,造成 Material Design 中的 z 轴层级逻辑混乱。
6. 绿色和橘色是一起下滑的,不会浪费时间。
你可以把 2-6 用首先显示 place holder 然后异步替换的方式做到,但是这个逻辑性比较差。
我觉得在实际操作中,是浪费不了多少时间的,逻辑还更加清晰,比方说你知道FAB 是可以交互的,你知道整个 view 是可以向下滚动的,你知道你的图片是因为点击了列表而来的。当然你喜欢那种唐突的切换效果也可以自己在 Developer 选项中关掉,不影响使用。