Невозможно привести RippleDrawable к StateListDrawable после миграции на AndroidX - PullRequest
0 голосов
/ 08 марта 2020

Я продолжаю получать

android.graphics.drawable.RippleDrawable cannot be cast to android.graphics.drawable.StateListDrawable

в следующей строке

StateListDrawable gradientDrawable = (StateListDrawable) view.getBackground();

Этого не происходило до того, как я попытался выполнить миграцию, когда представление было

android.support.v7.widget.AppCompatImageButton

но теперь, когда его

androidx.appcompat.widget.AppCompatImageButton

не работает

, это XML для рассматриваемого представления

<androidx.appcompat.widget.AppCompatImageButton
            android:id="@+id/view"
            android:layout_width="@dimen/bottomSheetPeekHeight"
            android:layout_height="@dimen/bottomSheetPeekHeight"
            android:layout_alignTop="@+id/dataEditorValueLayouts"
            android:layout_alignBottom="@+id/dataEditorValueLayouts"
            android:layout_marginEnd="@dimen/small_pad"
            android:scaleType="fitCenter"
            android:padding="@dimen/small_pad"
            app:srcCompat="@drawable/download"
            android:tint="@color/white"
            android:layout_toEndOf="@+id/dataEditorValueLayouts"
            style="@style/ButtonDefaultRuntime"
            android:visibility="visible" />

, и вот фон, определенный в стиле

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="@color/faBlue" />
            <stroke android:color="@color/button_border" android:width="3px" />
        </shape>
    </item>

    <item>
        <shape android:shape="oval">
            <solid android:color="@android:color/transparent" />
            <stroke android:color="@color/button_border" android:width="3px" />
        </shape>
    </item>
</selector>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...