gpt4 book ai didi

android - 迁移到 AndroidX android :button is not respected for API below Lollipop 后

转载 作者:行者123 更新时间:2023-11-29 00:54:41 25 4
gpt4 key购买 nike

我有一个非常简单的复选框:

<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/clipboardBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/clipboard_checkbox" />

对于选中/未选中,我有两个不同的图像。

迁移到 AndroidX 后,我在 API 21 以下的设备上看到了 Android 的默认图像。

我已经尝试过的:

  • 将 CheckBox 更改为 AppCompatCheckbox(来自 AndroidX)- 没有任何变化
  • 将背景设置为复选框并设置 android:button="@null" - 背景没问题,但我仍然在背景上看到默认图像(见下图)

Android 似乎完全不尊重 button 属性。

example of background set to img and button to null

我没有想法。对于 Lollipop+,everythink 可以正常工作。有没有人遇到过这样的问题?我所做的唯一改变是迁移到 AndroidX :/

最佳答案

在appcompat主题中,API 21以下的checkBoxStyle定义为

    <style name="Base.Widget.AppCompat.CompoundButton.CheckBox" parent="android:Widget.CompoundButton.CheckBox">
<item name="android:button">?android:attr/listChoiceIndicatorMultiple</item>
<item name="buttonCompat">?attr/listChoiceIndicatorMultipleAnimated</item>
<item name="android:background">?attr/controlBackground</item>
</style>

attr buttonCompat 有一个默认值来显示点击动画。 buttonCompat 属性生效并忽略按钮属性。

要修复它,属性 buttonCompat 必须未定义。在你的主题中添加

    <item name="checkboxStyle">@style/MyCheckBox</item>

并添加样式

    <style name="MyCheckBox" parent="android:Widget.CompoundButton.CheckBox">
<item name="android:button">?android:attr/listChoiceIndicatorMultiple</item>
<item name="buttonCompat">@null</item>
<item name="android:background">?attr/selectableItemBackgroundBorderless</item>
</style>

同样在您的 values-v21 目录中,将其添加到您的主题中

    <item name="checkboxStyle">?android:attr/checkboxStyle</item>

关于android - 迁移到 AndroidX android :button is not respected for API below Lollipop 后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55631014/

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