如何在 Kotlin anko 中使用 TextInputLayout & TextInputEditText
How to use TextInputLayout & TextInputEditText in Kotlin anko
Error:(63, 13) Unresolved reference: textInputLayout
Error:(64, 17) Unresolved reference: textInputEditText
我尝试在 kotlin anko 中添加 textInputLayout 和 textInputEditText 时收到上述错误消息。
下面是我的代码 -
private fun test(context: Context): View{
return with(context){
verticalLayout {
textInputLayout {
textInputEditText{}
}
}
}
}
TextInputLayout
在设计支持库中,因此您需要一个额外的 Anko 依赖项,为您提供该库的绑定(您可以找到所有不同 Anko 包的列表 here):
compile "org.jetbrains.anko:anko-design:$anko_version"
如果您还没有 Design Support Library,您还需要它:
compile 'com.android.support:design:25.4.0'
在任意位置创建一个 kotlin 代码文件。在没有任何 class 声明的情况下放置下面的代码。
inline fun ViewManager.textInputEditText() = textInputEditText {}
inline fun ViewManager.textInputEditText(theme: Int = 0, init: TextInputEditText.() -> Unit) = ankoView({ TextInputEditText(it) }, theme, init)
inline fun ViewManager.textInputLayout() = textInputLayout {}
inline fun ViewManager.textInputLayout(theme: Int = 0, init: TextInputLayout.() -> Unit) = ankoView({ TextInputLayout(it) }, theme, init)
希望对您有所帮助
编辑:根据@A Boschman 的评论,anko 非常新,几乎没有文档。当我遇到同样的问题时,我在互联网上搜索了很多但没有找到任何文档。
我的解决方案基于下面提到的线程 GitHub -(也没有理论解释)
https://github.com/Kotlin/anko/issues/205
https://github.com/Kotlin/anko/issues/264
Error:(63, 13) Unresolved reference: textInputLayout
Error:(64, 17) Unresolved reference: textInputEditText
我尝试在 kotlin anko 中添加 textInputLayout 和 textInputEditText 时收到上述错误消息。
下面是我的代码 -
private fun test(context: Context): View{
return with(context){
verticalLayout {
textInputLayout {
textInputEditText{}
}
}
}
}
TextInputLayout
在设计支持库中,因此您需要一个额外的 Anko 依赖项,为您提供该库的绑定(您可以找到所有不同 Anko 包的列表 here):
compile "org.jetbrains.anko:anko-design:$anko_version"
如果您还没有 Design Support Library,您还需要它:
compile 'com.android.support:design:25.4.0'
在任意位置创建一个 kotlin 代码文件。在没有任何 class 声明的情况下放置下面的代码。
inline fun ViewManager.textInputEditText() = textInputEditText {}
inline fun ViewManager.textInputEditText(theme: Int = 0, init: TextInputEditText.() -> Unit) = ankoView({ TextInputEditText(it) }, theme, init)
inline fun ViewManager.textInputLayout() = textInputLayout {}
inline fun ViewManager.textInputLayout(theme: Int = 0, init: TextInputLayout.() -> Unit) = ankoView({ TextInputLayout(it) }, theme, init)
希望对您有所帮助
编辑:根据@A Boschman 的评论,anko 非常新,几乎没有文档。当我遇到同样的问题时,我在互联网上搜索了很多但没有找到任何文档。
我的解决方案基于下面提到的线程 GitHub -(也没有理论解释)
https://github.com/Kotlin/anko/issues/205
https://github.com/Kotlin/anko/issues/264