Расширение Kotlin для Android - синтетические свойства недоступны внутри фрагментов поддержки - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть проект Android с такими зависимостями

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'

Проект пишется на Kotlin с использованием синтетических свойств для элементов представления.Реализации фрагментов в моем проекте расширяют фрагмент из пакета android.support.v4.app.Я столкнулся с проблемой, заключающейся в том, что внутри моих фрагментов я не могу получить доступ к своим взглядам через синтетику - я получаю сообщение, подобное этому:

Неразрешенная ссылка.Ни один из следующих кандидатов не применим из-за несоответствия типов получателей: public val Activity.detailButton: Button!определено в kotlinx.android.synthetic.main.fragment_welcome public val Dialog.detailButton: Кнопка!определено в kotlinx.android.synthetic.main.fragment_welcome public val android.app.Fragment.detailButton: Button!определено в kotlinx.android.synthetic.main.fragment_welcome public val androidx.fragment.app.Fragment.detailButton: Button!определено в kotlinx.android.synthetic.main.fragment_welcome public val LayoutContainer.detailButton: Button!определено в kotlinx.android.synthetic.main.fragment_welcome

Единственный способ решить проблему - это расширить фрагмент из androidx.fragment, но мне нужны фрагменты только из библиотек поддержки!В других частях проекта (например, ViewHolder с LayoutContainer) функция синтетических свойств работает нормально.Поэтому мне нужна помощь для решения этой проблемы.

Недавно в Android Studio я выполнил переход на AndroidX с функцией «Refactor-Migrate to AndroidX».Но это было сделано по резервному проекту.Может быть, это может повлиять на мою ситуацию

...