我在tablayout中使用了一些片段,这些片段包含折线图,显示数据。然而,当我滚动一两个片段并返回时,图表是空的,几乎就像重新创建了视图一样。
碎片对我来说仍然是一个新手,所以此时我认为碎片会暂停然后恢复,保存视图状态。
我找到了一个名为setRetainInstance()的方法,我将其设置为true,就像这样......
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setRetainInstance(true);
}
然而,数据仍然丢失,我错过了一步吗?
感谢您提供任何建议/建议。
答案 0 :(得分:0)
setRetainInstance
用于在配置更改期间保留实例,它不会存储您的数据。对于数据,您需要在onSaveInstanceState
方法中实施保存数据并使用onActivityCreated
方法重新加载数据。
答案 1 :(得分:0)
经过大量的研究和许多不同的尝试后我决定使用ViewModel,这与LiveData不仅解决了片段保留数据问题,而且还解决了旋转设备。
可以找到更多信息here