【发布时间】:2020-09-03 11:47:46
【问题描述】:
底部导航片段中存在其他片段,并包含来自服务器的数据!数据似乎在那里,因为它的加载速度比以前快,但视图被破坏并再次加载延迟了进程。
【问题讨论】:
-
我建议您将文档页面链接到您正在使用的确切导航片段,或者在问题中包含一些代码,以便其他人可以更好地回答您的问题。
底部导航片段中存在其他片段,并包含来自服务器的数据!数据似乎在那里,因为它的加载速度比以前快,但视图被破坏并再次加载延迟了进程。
【问题讨论】:
好吧,当您加载片段时,您需要在再次发出网络请求之前检查数据是否已经存在。
假设您在“onCreateView”方法上调用网络。您的班级中有一个全局变量。
class YourClass{
var someVariable = 0
...
//here your call network on "onCreateView" method
someVariable = callingNetWork.getValueFromNetWork()
}
onCreateView 在片段生命周期中被调用,你无法控制它会被调用多少次。所以你需要检查是否已经有数据。你需要这样的逻辑:
if( someVariable == 0) { //Has not been modiefied yet
someVariable = callingNetWork.getValueFromNetWork()
}
//Don't need an else, if it's not equal to 0, you have already called the networkd and stored the value
【讨论】: