问题标签 [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.

0 投票
1 回答
51 浏览

android - 如果填充了 2 个编辑文本,如何启用按钮?

如果 2 编辑文本是填充使用,如何启用按钮'androidx.core:core-ktx:1.1.0'

我试过了。如果我填写电子邮件(启用按钮)<== 看起来不错

但是,如果我删除电子邮件(按钮未禁用)<== 问题

0 投票
1 回答
86 浏览

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

0 投票
1 回答
98 浏览

android - Android KTX:如何覆盖 Kotlin 添加的属性扩展

我正在尝试覆盖 Kotlin 中的 View.setRotation() 方法。

由于 AndroidKTX 已经提供了属性扩展“旋转”,调用者可以简单地调用

viewObject.rotation = 90.0f

旋转视图。

但是,我想在用户更改旋转时添加一些额外的操作,比如

由于 StackOverflow 错误,这将崩溃。

所以,我必须添加一些额外的代码来实现这个目标:

这行得通,但我想知道是否还有其他更优雅的方法,比如“覆盖属性扩展设置器”?

0 投票
2 回答
1086 浏览

android-livedata - 将 livedata 与协程一起使用时,何时使用 emit() 而不是 postValue

我需要从挂起函数的返回值中获取 liveData。为了这 -

  1. 我可以启动一个协程(例如使用 viewmodelScope)并使用 postValue 来更新一个 MutableLiveData 实例。
  1. 我可以使用 livedata {} 并发出挂起函数的返回值。

我应该使用上述哪种方法?

0 投票
1 回答
784 浏览

android - 为什么我的默认警报对话框按钮文本是白色的?

我已按如下方式设置我的应用程序:

构建.gradle

implementation 'com.google.android.material:material:1.1.0'

样式.xml

CheckoutFragment.kt

颜色.xml

<color name="colorAccent">#F1CB1A</color> // I have this added to the base theme

但是,此设置显示了一个对话框,其中按钮文本不可见,因为文本和背景都是白色的。

结果对话框

我怎样才能解决这个问题?

0 投票
1 回答
161 浏览

kotlin - 更改 Kotlin JVM 目标会导致任何问题吗?

每当我在我的项目中使用 Fragmet KTX,特别是使用属性委托 ( viewModels& activityViewModels) 绑定 viewModel 时,我都会遇到编译器错误:

所以要解决这个问题,我必须将jvmTarget 设置为1.8build.gradle

我不明白的是为什么 jvmTarget 默认设置为 1.6 并且更改它会导致任何兼容性问题?

0 投票
1 回答
210 浏览

android - 我们可以在 Android 中创建自定义合成 Kotlin 扩展吗?

我对 Android 的 Kotlin Synthetic Extensions 很感兴趣,并想我们是否可以对自定义文件做同样的事情,比如我们保留在项目中的原始 XML 文件。例如,让我们考虑 Kotlin 中的合成视图。

生成的代码是这样的:

并且该_$_findCachedViewById方法也被生成到同一个类中,如下所示:

由于这是特定于 Android 的,我猜想这可以在 Kotlin 中完成,也许我可以将其扩展为自定义原始 XML 文件,例如配置文件并将它们解析为对象可能会很有趣。

但是,我找不到如何做到这一点。我知道 Kotlin 中的扩展函数,但在这里,一个完整的文件是基于导入综合生成的。当我反编译应用程序时,也没有找到这个 Kotlin 导入的神奇之处。

我还尝试查看 core-ktx 和 view-ktx 库,但到目前为止没有运气。知道如何做到这一点吗?

0 投票
1 回答
108 浏览

android - 如何以编程方式更改此属性 colorControlNormal

我无法更改工具栏中的后退按钮颜色
但是当我设置此样式 <style name="ToolbarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar"> <item name="colorControlNormal">@color/badge_color</item> </style> 时它工作正常,但我无法使用此代码,因为颜色来自 API 那么,如何在工具栏中更改此属性“colorControlNormal”以编程方式?或者如何改变后退按钮的颜色?

后退按钮

0 投票
1 回答
679 浏览

android - 带有导航组件的 backstack

在两个片段上使用导航组件,我的应用程序当前在navigateUp()被调用时销毁了一个setupActionBarWithNavController()片段(使用并且只有一个片段实例)但我一直在努力解决这个问题......

这是一些代码:

主要活动:

表单片段:

(我要保存进度并添加到后台堆栈的片段)

提前感谢您的帮助!

0 投票
1 回答
704 浏览

android - 应用程序启动后后压时出现 IllegalArgumentException

我使用“by viewModels”kotlin 委托来获取一些视图模型:

视图模型工厂:

当应用程序被反压关闭并再次启动时,它会抛出异常“java.lang.IllegalArgumentException:具有给定键的 SavedStateProvider 已注册。”

我看到了解决问题的两种解决方案。首先是使用exitProcess() 而不是super.onBackPressed()。它是有效的。

其次是将我的视图模型从活动转移到应用程序。在破坏活动后有幸存者。但我不能在应用程序中使用“by viewModels”kotlin 委托。我认为这不是正确的解决方案(但它也有效)。

获取视图模型的正确方法在哪里?