问题描述
使用最新的Android Studio 4.0.1(建于2020年6月25日),我创建了一个Tabbed活动,该活动将自动生成2个标签。
要了解选项卡片段的工作方式(如生命周期),我添加了第三个带有简单修改的片段。为了简化说明,以下三个选项卡按项目0/1/2依次为A / B / C。
我添加了onStart,onStop,onResume和onDestroy以及原始的onCreate和onCreateView,并添加了Log.i进行跟踪。我观察到的是:
步骤1。启动应用程序后,仅加载选项卡A和选项卡B:“ SectionsPagerAdapter-getItem 0”和“ SectionsPagerAdapter-getItem 1”,onCreate,onCreateView,onStart,onResume。
Q1:为什么不创建选项卡C? 问题2:为什么在实际只显示选项卡A的同时调用选项卡A和B的onResume?
第2步。现在按选项卡B,从屏幕上显示选项卡B,但仅显示有关选项卡C的日志:“ SectionsPagerAdapter-getItem-2”,以及onCreate,onCreateView,onStart,onResume。
Q3:现在选项卡B在屏幕上,但是选项卡B尚未显示任何事件,并且选项卡C实际上是不可见的。为什么?
第3步。现在按选项卡C,从屏幕上显示选项卡C,但是“日志”仅在停止位置显示选项卡A。
Q4:为什么选项卡A onStop不在步骤2中出现,而是在这里?
步骤4.现在按下选项卡A,从屏幕选项卡A中显示,日志显示选项卡A onCreateView,onStart,onResume;然后按一下C onStop。
在选项卡之间切换期间,并非始终都调用onDestroy。
因此,从上方看,选项卡布局似乎始终在onResume上保留2个选项卡(应该显示并获得焦点?),任何人都可以帮助解释为什么或合理地使用选项卡布局工作流程?我认为这对于我们在标签之间传输数据很重要。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)