问题标签 [android-ktx]
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 - 如果填充了 2 个编辑文本,如何启用按钮?
如果 2 编辑文本是填充使用,如何启用按钮'androidx.core:core-ktx:1.1.0'
?
我试过了。如果我填写电子邮件(启用按钮)<== 看起来不错
但是,如果我删除电子邮件(按钮未禁用)<== 问题
android - 我可以在 Kotlin 中使用 MutableLiveData 直接实例化用户对象吗?
文本 A 和代码 A 来自这篇文章。
我很奇怪为什么他们不使用代码 B 或代码 C 来实例化用户对象。我认为 Code B 和 Code C 非常简单明了。
顺便说一句,我没有测试过代码 B 和代码 C,但我认为它们是正确的。
文字A
使用 LiveData 时,您可能需要异步计算值。例如,您可能想要检索用户的偏好并将它们提供给您的 UI。在这些情况下,您可以使用 liveData 构建器函数调用挂起函数,将结果作为 LiveData 对象提供。在下面的示例中,loadUser() 是在别处声明的挂起函数。使用 liveData builder 函数异步调用 loadUser(),然后使用 emit() 发出结果
代码 A
代码 B
代码 C
android - Android KTX:如何覆盖 Kotlin 添加的属性扩展
我正在尝试覆盖 Kotlin 中的 View.setRotation() 方法。
由于 AndroidKTX 已经提供了属性扩展“旋转”,调用者可以简单地调用
viewObject.rotation = 90.0f
旋转视图。
但是,我想在用户更改旋转时添加一些额外的操作,比如
由于 StackOverflow 错误,这将崩溃。
所以,我必须添加一些额外的代码来实现这个目标:
这行得通,但我想知道是否还有其他更优雅的方法,比如“覆盖属性扩展设置器”?
android-livedata - 将 livedata 与协程一起使用时,何时使用 emit() 而不是 postValue
我需要从挂起函数的返回值中获取 liveData。为了这 -
- 我可以启动一个协程(例如使用 viewmodelScope)并使用 postValue 来更新一个 MutableLiveData 实例。
- 我可以使用 livedata {} 并发出挂起函数的返回值。
我应该使用上述哪种方法?
kotlin - 更改 Kotlin JVM 目标会导致任何问题吗?
每当我在我的项目中使用 Fragmet KTX,特别是使用属性委托 ( viewModels
& activityViewModels
) 绑定 viewModel 时,我都会遇到编译器错误:
所以要解决这个问题,我必须将jvmTarget 设置为1.8build.gradle
我不明白的是为什么 jvmTarget 默认设置为 1.6 并且更改它会导致任何兼容性问题?
android - 我们可以在 Android 中创建自定义合成 Kotlin 扩展吗?
我对 Android 的 Kotlin Synthetic Extensions 很感兴趣,并想我们是否可以对自定义文件做同样的事情,比如我们保留在项目中的原始 XML 文件。例如,让我们考虑 Kotlin 中的合成视图。
生成的代码是这样的:
并且该_$_findCachedViewById
方法也被生成到同一个类中,如下所示:
由于这是特定于 Android 的,我猜想这可以在 Kotlin 中完成,也许我可以将其扩展为自定义原始 XML 文件,例如配置文件并将它们解析为对象可能会很有趣。
但是,我找不到如何做到这一点。我知道 Kotlin 中的扩展函数,但在这里,一个完整的文件是基于导入综合生成的。当我反编译应用程序时,也没有找到这个 Kotlin 导入的神奇之处。
我还尝试查看 core-ktx 和 view-ktx 库,但到目前为止没有运气。知道如何做到这一点吗?
android - 带有导航组件的 backstack
在两个片段上使用导航组件,我的应用程序当前在navigateUp()
被调用时销毁了一个setupActionBarWithNavController()
片段(使用并且只有一个片段实例)但我一直在努力解决这个问题......
这是一些代码:
主要活动:
表单片段:
(我要保存进度并添加到后台堆栈的片段)
提前感谢您的帮助!
android - 应用程序启动后后压时出现 IllegalArgumentException
我使用“by viewModels”kotlin 委托来获取一些视图模型:
视图模型工厂:
当应用程序被反压关闭并再次启动时,它会抛出异常“java.lang.IllegalArgumentException:具有给定键的 SavedStateProvider 已注册。”
我看到了解决问题的两种解决方案。首先是使用exitProcess() 而不是super.onBackPressed()。它是有效的。
其次是将我的视图模型从活动转移到应用程序。在破坏活动后有幸存者。但我不能在应用程序中使用“by viewModels”kotlin 委托。我认为这不是正确的解决方案(但它也有效)。
获取视图模型的正确方法在哪里?