Почему мой сгенерированный класс привязки данных генерирует исключение ClassCastException для моего составного представления? - PullRequest
0 голосов
/ 03 октября 2019

Я создаю составное представление и раздуваю его из xml следующим образом:

class CompoundView @JvmOverloads constructor(
    context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : FrameLayout(context, attrs, defStyleAttr) {

    init {
        View.inflate(context, R.layout.my_layout, this)
    }

Но затем я пытаюсь использовать этот класс в макете XML фрагмента с использованием привязки данных. Этот файл макета называется my_other_layout. Когда этот фрагмент запускается, приложение вылетает с загадочным ClassCastException.

Что происходит?

1 Ответ

0 голосов
/ 03 октября 2019

После того, как я вырвал большую часть своих волос, я понял, что проблема в том, что у меня есть 2 представления в 2 разных XML-файлах разметки с одинаковым идентификатором.

my_layout содержит представление под названием myViewи my_other_layout также содержит другое представление, называемое myView.

И, очевидно, привязка данных не может различить эти идентификаторы, поэтому пытается преобразовать одно из представлений в тип другого.

...