我目前在片段中使用CheckBox时遇到问题。一旦片段开启,核取方块就能正常运作。核取方块的行为会在两种情况下变更:
- 当我使用“后退”按钮从backStack中取出片段时
- 当我第二次打开碎片的时候。
看起来像是在重新创建片段时,复选框变为灰色(禁用),但仍然可以单击。
<androidx.appcompat.widget.AppCompatCheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
app:layout_constraintTop_toBottomOf="@id/ivLogo"
app:layout_constraintStart_toStartOf="@id/guideStart"
app:layout_constraintEnd_toEndOf="@id/guideEnd"/>
我尝试保存它的状态,但没有成功。
PS:在获得此行为后,(checkbox.isEnabled = true)不再起作用。
有什么帮助吗?
先谢谢你。
2条答案
按热度按时间3npbholx1#
我相信你必须用Android Activity Lifecycle来实验。看起来你需要记住一个状态,然后用它来设置复选框到一个正确的,以前的状态,例如
onResume()
或其他东西。pw9qyyiw2#
我找到解决办法了!
我试图覆盖复选框的主题。唯一对我有效的是:Widget.MaterialComponents.CompoundButton.CheckBox
解决方案是使用自定义主题,如下所示:
希望对你们有帮助!