7

我正在尝试在片段中databinding使用android 双向。 我在custom中有多个片段,在 first 中有一个。 我有一个带有以下代码的复选框:checkBox
viewPagerFragmentStatePagerAdapterviewModelfragment

<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..." />

在视图模型中:

private final ObservableBoolean isAccept = new ObservableBoolean(false);

当我走到最后fragment并返回第一个时,checkBox不再选中,复选框的颜色为真,但复选图标不存在!以前有人遇到过这个问题吗?

提前致谢

4

1 回答 1

0

View pager 的片段比普通片段具有独特的生命周期。如果您有三个片段 A->B->C 并且您从 C 滑动 B 则片段 A 将被销毁。您可以通过覆盖片段 A 中的方法来检查它。onDestroy当您再次滑动到 A 它将再次重新创建,所有值将再次初始化。这就是未选中复选框值的原因。尝试将复选框的值保存在 sharedPreference 中,因此无论何时重新创建它都会从 sharedPreference 中获取值并记住当您的 viewpager 将被破坏或它的容器活动被破坏时,清除 sharedPrefence 值。

于 2020-04-18T13:52:46.023 回答