还是沙发里tab随机性显示homefragment内容问题

来源:12-1 发现Tab总体效果展示&ViewModel新特性

幕布斯3357744

2020-05-31

我运行一下老师代码,然后发现方法运行顺序不一样

http://img1.sycdn.imooc.com/szimg/5ed328b808f3cd0a10080756.jpg
上面是正确,下面是错误的,我发现当tab里如果显示是homefragment内容,是因为先执行datasource创建,然后才执行onviewcreated,想请老师帮我分析下可能性是什么原因,为什么在首页home里执行总是顺序是没问题的,但是到了沙发页面,执行顺序就可能会发生变化,明明用的都是同一个fragment啊

写回答

1回答

LovelyChubby

2020-05-31

生命周期本身没什么问题,在于setFeedType是同步调用的,而datasource 里面的三个方法是异步被触发的,所以在首页里,即便setFeedType后置调用,那么在datasource 被触发的时候也能拿到正确的feedType

而沙发tab出现这个问题的原因,应该是时序问题。viewmodel创建之后,到setFeedType这中间有别的事情在做???导致迟迟setFeedType 无法被及时触发。

对比下课程项目的sofafragment呢。我这边没有复现这个问题?

0
0

开发商业级热门短视频App 掌握Jetpack组件库

Jetpack架构大揭秘,全组件实战主流且功能完整的短视频App

1364 学习 · 607 问题

查看课程