ViewPager Fragment Views保留以前状态的值

时间:2017-01-23 16:19:33

标签: android android-viewpager

我有一个带有自定义片段的3标签ViewPager(EntryFragment和CalendarFragment;第三个与问题无关)。现在当我点击CalendarFragment上的日期时,EntryFragment应该加载新日期的数据(我已经用这种方式编码)。

现在,发生的事情很奇怪:EntryFragment中的TextFields从新日期变为新数据。但Seekbars,Spinners,Switch等保留了之前日期的数据。

我使用以下方法设置各种视图的值:

seekbar.setProgress(int);
spinner.setSelection(int, false);
switch.setChecked(boolean);

另外,我为这些组件附加了onItemSelectedListerners。这些是在EntryFragment的onCreateView()之后自动调用的。

有人能指导我为什么会这样吗?或者如何预防?

1 个答案:

答案 0 :(得分:1)

我猜它可能正在恢复以前的状态,ViewPagers有内置机制来恢复已隐藏的视图。您的数据设置为正确的值,然后恢复到之前的状态。为了防止这种情况,请尝试在您遇到问题的视图的xml布局中添加saveEnabled = false。