片段中的复选框在某些 Android 设备上被禁用

问题描述

我有一个带有 tablayout 的 android 应用程序(3 页,从第 2 页开始)。在第 2 页和第 3 页中,我有包含复选框的相同片段。此复选框的状态通过视图模型同步(第 2 页和第 3 页上的状态相同)。 视图模型有时会在此片段上调用回调(对于测试,此回调为空) 除了某些设备/安卓版本外,它在全球范围内都可以正常工作

这是非工作场景:

  1. 启动活动(显示第 2 页,认选中复选框)
  2. 等待视图模型调用回调(在我的例子中是 gps 发送它的第一个位置)
  3. 切换到第 3 页
  4. 取消选中复选框
  5. 切换回第 2 页

预期结果: 复选框未选中

观察结果: 复选框被选中禁用(灰显)

尽管复选框看起来已禁用,但您可以单击它:

  • 下次点击:复选框被选中并启用
  • 下次点击:复选框被选中并被禁用

如果调用回调(空)被删除,那么它工作正常

如果我用@android:drawable/btn_radio 替换认的drawable,那么它工作正常

如果我用一个选择器替换认的 drawable 只用 2 个项目 (state_checked="false"/"true"),那么它工作正常

如果在调用回调之前,我关闭/打开第 2 页上的复选框,则它工作正常

我遇到了问题:

  • 搭载 Android 8.0.0 的三星 A3 设备
  • 搭载 Android 7.1.1 的摩托罗拉 E4

它在某些搭载 Android 4.2.1、7、10 和 11 的设备上运行良好

知道发生了什么吗?

注意:我总是可以使用自定义 drawable,但我宁愿避免使用它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)