Неразрешенная ссылка: lparams для verticalLayout в Anko 0.10.6 - PullRequest
0 голосов
/ 30 сентября 2018

Я посмотрел на Anko 0.8 - неразрешенная ссылка на lparams , но я не использую lparams во внешнем макете, как в этой ссылке.

Я получаю 'неразрешенную ссылку: lparams'в следующем коде (и нет предложений по импорту в Android Studio).Любые идеи относительно того, что я пропустил и / или упустил из виду?

class LoginActivityUi: AnkoComponent<LoginActivity> {

    override fun createView(ui: AnkoContext<LoginActivity>): View = with(ui) {
        verticalLayout {
            backgroundColorResource = R.color.background_page

            textView{
                text = "ASDF"
            }.lparams{

            }
        }
    }

}

Вот мои зависимости ($ kotlin_version - 1.2.71, $ anko_version - 0.10.6):

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

implementation "org.jetbrains.anko:anko-commons:$anko_version"

// Appcompat-v7 (only Anko Commons)
implementation "org.jetbrains.anko:anko-appcompat-v7-commons:$anko_version"

// Appcompat-v7 (Anko Layouts)
implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
implementation "org.jetbrains.anko:anko-coroutines:$anko_version"

// Anko Layouts
implementation "org.jetbrains.anko:anko-sdk15:$anko_version" // sdk15, sdk19, sdk21, sdk23 are also available
implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version"

// Coroutine listeners for Anko Layouts
implementation "org.jetbrains.anko:anko-sdk15-coroutines:$anko_version"
implementation "org.jetbrains.anko:anko-appcompat-v7-coroutines:$anko_version"

// CardView-v7
implementation "org.jetbrains.anko:anko-cardview-v7:$anko_version"

// Design
implementation "org.jetbrains.anko:anko-design:$anko_version"
implementation "org.jetbrains.anko:anko-design-coroutines:$anko_version"

// GridLayout-v7
implementation "org.jetbrains.anko:anko-gridlayout-v7:$anko_version"

// Percent
implementation "org.jetbrains.anko:anko-percent:$anko_version"

// RecyclerView-v7
implementation "org.jetbrains.anko:anko-recyclerview-v7:$anko_version"
implementation "org.jetbrains.anko:anko-recyclerview-v7-coroutines:$anko_version"

// Support-v4 (only Anko Commons)
implementation "org.jetbrains.anko:anko-support-v4-commons:$anko_version"

// Support-v4 (Anko Layouts)
implementation "org.jetbrains.anko:anko-support-v4:$anko_version"

// ConstraintLayout
implementation "org.jetbrains.anko:anko-constraint-layout:$anko_version"
}

1 Ответ

0 голосов
/ 30 сентября 2018

Хорошо, так ... Как вы можете видеть в этой разнице , по состоянию на Anko 0.10.6 методы verticalLayout были изменены, чтобы принимать лямбда-выражения инициализатора типа LinearLayout.() -> Unit вместопредыдущие _LinearLayout.() -> Unit типы.Подчеркнутый _LinearLayout класс - это класс, который определяет методы lparams, которые вы ищете, поэтому он пропал из-за этого изменения.

Уже есть открытая проблема для этого критического измененияздесь: https://github.com/Kotlin/anko/issues/673

Тем временем вы можете либо придерживаться 0.10.5, либо использовать linearLayout с явной ориентацией в качестве обходного пути:

linearLayout {
    orientation = LinearLayout.VERTICAL
    backgroundColorResource = R.color.background_page

    textView {
        text = "ASDF"
    }.lparams {

    }
}
...