我的Android应用中有一个表单,它使用ViewPager分布在多个页面中.
为了简单起见,它只返回View对象而不是实例化Fragments.
每个视图都由布局和视图模型(我用于所有视图的相同实例)和数据绑定自动设置值组成.
问题是,如果复选框位于加载活动时不在前面的视图中,则复选框未填充且具有白色复选标记.
如果我更改了顺序,那么带有复选框的视图是ViewPager加载的第一个,我可以看到复选框被选中(带动画)并且它们被正确标记.
请参阅附带的屏幕截图:
我的单选按钮也有同样的问题.
Checkbox的数据绑定示例:
<CheckBox
android:id="@+id/checkbox_calling"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_weight="1"
android:checked="@={viewModel.observation.calling}"
android:text="@string/label_calling" />
Run Code Online (Sandbox Code Playgroud)
更新:
我目前通过设置一个OnPageChangeListeneron ViewPager和当ViewPager滚动到带有复选框的页面时解决了这个问题,我取消选中复选框,然后将它们设置为原始值.
然后正确显示动画,复选框最终带有正确的复选标记.
然而,我仍然希望了解我做错了什么或Android数据绑定本身是否存在问题.
android ×1