gpt4 book ai didi

kotlin - Anko 0.8 - Unresolved lparams 引用

转载 作者:IT老高 更新时间:2023-10-28 13:47:25 26 4
gpt4 key购买 nike

主要问题是:lparams 只是从 Anko 中消失了,还是我做错了什么?以下代码段无法编译:

verticalLayout {
}.lparams(width = matchParent, height = matchParent) {
topMargin = dip(10)
}

虽然这没有任何问题:

verticalLayout {
layoutParams = LinearLayout.LayoutParams(matchParent, matchParent).apply {
topMargin = dip(10)
}
}

我不太介意第二个选项,但是您必须在生成参数时指定布局类型,这可能会有点烦人(而且比原始解决方案更脆弱)。

我没有在 Anko GitHub 页面、更改日志或浏览最近的提交中找到任何内容。这是完整的 UI 类供引用:

class ReviewsFragmentUi(ctx: AnkoContext<ReviewsFragment>) : AnkoComponent<ReviewsFragment> {
override fun createView(ui: AnkoContext<ReviewsFragment>) = ui.apply {
verticalLayout {
layoutParams = LinearLayout.LayoutParams(matchParent, matchParent).apply {
topMargin = dip(10)
}
}
}.view
}

相关的 Gradle 条目(我使用的是 Kotlin 1.0.0-beta-3595):

ext.versions = [
anko : '0.8.1',
]

compile "org.jetbrains.anko:anko-common:$versions.anko",
compile "org.jetbrains.anko:anko-sdk21:$versions.anko",
compile "org.jetbrains.anko:anko-support-v4:$versions.anko",
compile "org.jetbrains.anko:anko-design:$versions.anko",
compile "org.jetbrains.anko:anko-appcompat-v7:$versions.anko",
compile "org.jetbrains.anko:anko-cardview-v7:$versions.anko",
compile "org.jetbrains.anko:anko-recyclerview-v7:$versions.anko",
compile "org.jetbrains.anko:anko-gridlayout-v7:$versions.anko",

作为后续问题:如果 lparams 确实消失了,那么有没有比我已经在做的更优雅的替代品?

最佳答案

显然lparams还在,但不能作为最外层布局的扩展函数:

所以下面的代码失败了:

override fun createView(ui: AnkoContext<ReviewsFragment>) = ui.apply {
verticalLayout {
// Layout elements here
}.lparams {
// Layout params here
}
}.view

但这编译得很好:

override fun createView(ui: AnkoContext<ReviewsFragment>) = ui.apply {
verticalLayout {
lparams {
// Layout params here
}

// Layout elements here
verticalLayout { }.lparams {
// lparams works fine if there is a parent layout
}
}
}.view

值得注意的是,不鼓励对内部布局使用无尾版本的 lparams:当嵌套布局不同时,它会创建错误的 LayoutParams 子类类型。有关完整的讨论,请参阅 GitHub Issue .

关于kotlin - Anko 0.8 - Unresolved lparams 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34351584/

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