我正在尝试在片段中使用带有checkBox
的android双向databinding
。
我在带有自定义FragmentStatePagerAdapter
的viewPager
中有多个片段,在第一个fragment
中有一个viewModel
。
我有一个包含以下代码的复选框:
<CheckBox
android:id="@+id/checkbox_accept_rules"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="@={viewmodel.isAccept}"
android:gravity="right"
android:text="text..." />
在viewModel中:
private final ObservableBoolean isAccept = new ObservableBoolean(false);
当我转到最后一个fragment
并返回到第一个时,checkBox
不再被选中,复选框的颜色是真的,但复选图标不在那里!以前有人遇到过这个问题吗?
提前感谢
发布于 2020-04-18 21:52:46
查看页面的碎片有一个独特的生命周期比通常的fragment.If你有三个碎片A->B->C和你滑动B从C然后碎片A将被destroyed.You可以检查它通过覆盖的方法onDestroy
在碎片A.When你再一次滑动到A它将再次创建,和所有的值将初始化again.That是因为你的checkbox的值是unchecked.Try保存在sharedPreference中的checkbox的值,所以每当它将重新创建它将从sharedPreference的值和记住清除sharedPrefence的值时,你的viewpager将被销毁或它的容器活动被销毁。
https://stackoverflow.com/questions/49124476
复制相似问题