我是一名初学者,试图通过将旧教程更改为 Compose 来学习 Kotlin。 我有一个 ViewModel 和片段: 我如何调整此代码以使用 Jetpack Compose? 我了解我需要在可组合项中使用“ObserveAsState”: 事实是,我认为我并不真正理解可为空的问题,或者 val ...
我是一名初学者,试图通过将旧教程更改为 Compose 来学习 Kotlin。 我有一个 ViewModel 和片段: 我如何调整此代码以使用 Jetpack Compose? 我了解我需要在可组合项中使用“ObserveAsState”: 事实是,我认为我并不真正理解可为空的问题,或者 val ...
如何处理 JetPackCompose 中的 ViewModel 清除焦点事件? 我有一个协程通道,有时会通知我的屏幕清除TextField焦点通知我的可组合项明确焦点的最佳方式是什么? 我试图创建一个 mutableStateFlow,但有更好的方法吗? 当协程通道通知ViewModel时,我想 ...
我的设置是:java 使用 Koin 获取 ViewModel 的活动。 这一切都很好,但是当我旋转手机时,总是会重新创建 ViewModel。 那么在这种情况下如何避免 ViewModel 重新创建呢? 谢谢。 活动: 公因: ...
我的场景是这样的:我的应用程序只有一个活动架构,并且有多个片段,我使用NavController object 导航到这些片段。 在我的MainActivity中,我创建了一个名为Orchestrator的 object,我只想创建一次,然后在整个应用程序和片段中使用它。 Orchestrator ...
我有以下代码 您注意到var todoList是var 。 因为它只初始化一次,所以我希望让它成为val 。 这怎么可能,因为它是在 viewModelScope 中初始化的? ...
我有一个常见的获取数据的情况。 我使用 Kotlin 协程。 1个变体: 2 变体: 如何使用 viewModelScope 但没有 lateinit 或 nullble 字段来初始化数据字段而不是延迟,而是立即? 没有 LiveData,我的项目使用 Coroutine Flow 我无法返回 ...
我有一个视图 model,每次用户在顶部应用栏的文本字段中输入文本时,它都会获取搜索查询数据字符串。 视图model如下: 视图模型.kt 然后在我的屏幕上: 每次用户键入新文本时, searchBarValue都会从我的 UI 屏幕成功发送到 viewModel,并且相应地更新searchQuer ...
我在 jetpack compose 中创建了一个 LazyRow。 在视图模型中的某个点,我想从 LazyRow 中获取当前可见项的列表。 我知道我可以使用以下代码获取可组合项 function 中的可见项列表: 问题是如何在 viewmodel 事件期间将此数据传递给 viewmodel(而不是 ...
我有以下代码来检查 live.network 连接 state。 如何从视图 model init function 调用 function 开始检查 this.network 连接 state? 如果 inte.net 连接 state 发生变化,我怎样才能做到这一点,它会在视图 model 中 ...
我有这样的搜索视图 model。 searchPoiUseCase向 Room DB 发出请求。 出于测试目的,我正在使用Room.inMemoryDatabaseBuilder 。 在设备上,这个逻辑工作得很好。 但是我无法成功地对该逻辑进行单元测试。 这是我的单元测试: 第二个断言总是失败。 ...
在各种情况下,我看到人们在从本地数据库中检索对象列表时使用 Kotlin Flows,但是我没有注意到在检索单个对象(而不是列表)时使用它们的任何警告/错误,甚至没有说明流程只能用于列表我的问题是,在单个对象上使用 Flows 会导致错误/问题吗? 如果不是,它会影响性能吗? 如果不是,那为什么一 ...
我正在使用activity. Finish() activity. Finish()在注销时关闭应用程序。 但是,当再次打开应用程序时,我的协程不会启动,更具体地说, viewModelScope.launch不会启动。 这可能是因为我错误地关闭了应用程序吗? 我想关闭应用程序并在注销时清除应用程 ...
我的视图中有以下代码 model。 我正在使用 jetpack navigator,它在第一次创建屏幕时运行良好,但是当我 go 到另一个屏幕并返回到这个屏幕时,协程被取消并显示以下消息kotlinx.coroutines.JobCancellationException: Job was canc ...
我在 compose for ui state 中遵循单向流所以基本上我已经密封了 class 如下 在视图模型中 首先 api 将在页面启动时调用,并根据响应相应的 state 发出。 正常情况下没有问题。 但是假设页面上还有另一个按钮,其 function 用于导航到应用程序的“关于”部分。 起 ...
我在 Jetpack Compose 中创建了一个视图 model,但是当其中的变量更新时,该视图不会刷新。 我在这里遵循了视图 model 指南: https://developer.android.com/jetpack/compose/libraries#viewmodel 在SignInWi ...
我将如何在 Android 的架构组件ViewModel的初始时间从深层链接访问数据。 我可以通过注入 Hilt 的SavedStateHandle访问意图的Bundle ( intent.extras ) 中提供的附加功能,但是当通过深层链接打开 Activity 时,我在 Activity 级别 ...
当我尝试通过viewModel()创建 ViewModel 时,我收到以下错误: 我的应用程序如下所示: MainActivityclass MainActivity : ComponentActivity() { override fun onCreate(savedInstanceSta ...
因此,我的计算器应用程序中有两个 ViewModel,我都在我的 Compose NavGraph 中引用了这两个 ViewModel,因此我可以使用相同的 ViewModel 实例。 我在第一个 ViewModel 中设置了一个 Boolean State(historyCheck) 并且我将它设 ...
Android 文档说可组合函数可以并行运行: https ://developer.android.com/jetpack/compose/mental-model#parallel 这意味着,可以在任何线程上调用任何特定的可组合函数。 那么如果我们实例化viewModel如下: 这意味着,可 ...
如果我调用 View Model 的 init 块中的某个函数 A,它将更新实时数据,然后我在活动的 onViewCreated 中观察这个实时数据。 那么到底对不对? 它会得到存储在实时数据中的那个值吗? 或者我必须在观察活动中的实时数据后调用函数 A。 如果它起作用,为什么它会起作用? ...