问题标签 [kotlin-android-extensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 使用 Anko 获取类型不匹配错误需要 AnkoContext找到 AnkoContext
我在实现recyclerView 的基本Android 应用程序中使用Anko。在该onCreateViewHolder()
方法中,我收到一个编译时错误,说类型不匹配。以下代码中的其他一切都很好。
如果我使用了错误的语法或执行错误,请告诉recyclerview
我
android - Dagger2 不生成 Dagger 类
Dagger2 不创建类 Dagger*。我创建了接口 MyContainerComponent,但没有创建类 DaggerMyContainerComponent!
在build.gradle
我的容器组件.kt
ProfileModule.kt
有什么解决办法吗?已经尝试过:更改 gradle 版本、清理、重建、更改依赖版本,同时删除 Gradle 缓存并重新安装 Android Studio。
android - Kotlin 合成属性
我注意到 Kotlin 合成属性不适用于 CustomViews。我不知道这是不是有意的。读取生成的 java 类时,我看到缓存存在:
但从未使用过。相反,任何时候需要一个视图,findViewById
都会被调用。这是默认行为吗?合成属性仅适用于活动和片段?
android - Kotlin 合成扩展和几个包含相同的布局
如果我有如下布局,如何使用 kotlin 合成扩展访问视图:
文件:two_days_view.xml
文件:day_row.xml
如何访问dayName?我找了一些这样的:
我在 Studio 中看到我可以访问dayName
但 dayName TextView 引用的是哪一个?
正常,如果我只有一个包含的布局,它可以正常工作。但现在我多次包含相同的布局。
当然我总是可以这样做:
但我正在寻找好的解决方案。:)
android - Kotlin 扩展/综合属性:多次调用 Fragment.onViewCreated() 中的相同对象
我正在使用 kotlin-android-extensions 将合成视图属性从我的布局导入到我的片段中。在我的onViewCreated()
Fragment 方法中,我调用addTextChangedListener()
了EditText
一个合成导入的视图。这在第一次实例化 Fragment 时工作正常,但下一次出现时,我的新侦听器将被添加到与上次调用相同的视图对象中。因此,现在这两个TextChangedListener
对象都在文本更改时被触发,结果可想而知。据我所知,从 Fragment 首次出现的视图从未被取消引用。
这是我记录视图对象的输出,显示它是同一件事。
首次亮相:
第二次出场:
当然,我可以通过使用findViewById()
来访问我的视图而不是合成参考来解决这个问题,但我想知道是否有其他人遇到这个问题以及是否有更好的方法来处理它(除了不使用合成视图参考。)
仅供参考:使用 Kotlin 版本1.0.6。
kotlin - arrayListOf 和 mutableListOf 有什么区别,哪个更好?
我正在尝试在 Kotlin 中使用集合,但对 arrayListOf 和 mutableListOf 感到困惑,我们应该使用哪一个,为什么?
android - Kotlin 支持字段有什么用?
作为一名 Java 开发人员,支持字段的概念对我来说有点陌生。鉴于:
这个后台有什么用?Kotlin 文档说:
Kotlin 中的类不能有字段。但是,有时在使用自定义访问器时需要有一个支持字段。
为什么?在 setter 中使用属性名称本身有什么区别,例如。*
android - 什么 id 命名约定对 Kotlin android 扩展有好处
使用Kotin android 扩展我可以避免使用findViewById
,但我不确定如何命名 id 以正确使用它。
我发现两个选项是:
- 对 id 使用简单的名称,但如果我将其与片段一起使用,我可能会在使用 espresso 时遇到麻烦:
android.support.test.espresso.AmbiguousViewMatcherException: 'with id: .../mainLayout' 匹配层次结构中的多个视图。
这是因为我在 TabLayout 中有两个具有相同 id 的片段:
- 所有者姓名:
"@+id/loginMainLayout"
和"@+id/signUpMainLayout"
但后来我将不得不使用像signUpMainLayout.doSomething()
.
注意:我不喜欢
_
在这种情况下使用 ,因为这不是一个好的代码风格。
还有哪些其他选择?
android - Android Studio 中过时的 Kotlin 运行时警告
下载并安装最新的 Kotlin 插件后,我收到了来自 Android Studio 的过时 Kotlin Runtime警告,告诉我:
您在“kotlin-stdlib-1.1.2”库中的 Kotlin 运行时版本是 1.1.2,而插件版本是 1.1.2-release-Studio2.3-3。应更新运行时库以避免兼容性问题。
我试图单击更新运行时按钮,但收到另一条消息:
目前不支持 Gradle 项目的自动库版本更新。请手动更新您的 build.gradle。
如何解决这个问题?