gpt4 book ai didi

使用数据绑定(bind)在 ViewPager 中未正确选中 Android 复选框

转载 作者:太空宇宙 更新时间:2023-11-03 12:03:46 24 4
gpt4 key购买 nike

我的 Android 应用程序中有一个表单,它使用 ViewPager 分布在多个页面中。

为了简单起见,它只返回 View 对象而不是实例化 fragment 。

每个 View 都由一个布局和一个 View 模型(我对所有 View 使用相同的实例)和数据绑定(bind)组成,以自动设置值。

问题是如果加载 Activity 时复选框位于不在前面的 View 中,则复选框未填充并带有白色复选标记。

如果我更改顺序,那么我的带有复选框的 View 是第一个由 ViewPager 加载的 View ,我可以看到复选框被选中(带有动画)并且它们被正确标记。

见附件截图:

View not being the first loaded

View being the first loaded

我对单选按钮有同样的问题。

复选框的数据绑定(bind)示例:

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

更新:

我目前已经通过在 ViewPager 上设置 OnPageChangeListener 解决了这个问题,当 ViewPager 滚动到带有复选框的页面时,我取消选中复选框,然后将它们设置为原始值。

然后动画正确显示,复选框以正确的复选标记结束。

不过,我仍然很乐意找出我做错了什么,或者 Android 数据绑定(bind)本身是否存在问题。

最佳答案

我认为这与复选框的动画方式有关。所以我查看了如何跳过动画,并在复选框上调用 jumpDrawablesToCurrentState after 检查它对我有用。

关于使用数据绑定(bind)在 ViewPager 中未正确选中 Android 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42997873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com