小编Kir*_*ach的帖子

处理Android导航组件中的后退按钮

我想知道如何使用导航控制器正确处理系统后退按钮操作.在我的应用程序中,我有两个片段(例如片段1和片段2),我在fragment1中有一个目标为fragment2的动作.一切都很好,除了一件事 - 当用户按下fragment2中的系统后退按钮时,我想显示一个对话框(例如使用DialogFragment)来确认退出.实现此行为的最佳方法是什么?如果我app:defaultNavHost="true"在我的主机片段中使用它会自动返回忽略我的规则.此外,这个组件是什么?

在此输入图像描述

我应该使用"pop to"吗?

navigation android fragment android-jetpack

33
推荐指数
11
解决办法
3万
查看次数

将两个状态流组合成新的状态流

我有两个状态流。是否有可能将它们结合起来并获得新的状态流?从逻辑上讲,这应该是可能的,因为两个状态流都有初始值,但正如我所见,组合函数仅返回 Flow 而不是 StateFlow。

collections kotlin kotlin-flow

20
推荐指数
2
解决办法
2万
查看次数

Java 10 JavaFX java.lang.IllegalAccessError

我正在尝试将我的 JavaFX Gradle 项目更新到 Java 10。我已经像本指南中一样更改了我的 build.gradle 文件。但是当我尝试运行项目(执行./gradle run)时,我收到此错误:

> Task :run FAILED
Exception in Application start method
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:941)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
        at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x5ce4f9a4) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics …
Run Code Online (Sandbox Code Playgroud)

java module javafx gradle java-10

6
推荐指数
1
解决办法
5628
查看次数

第一件商品到货后立即发货,后续商品进行退抖处理

这个问题与thisthis相同,但是关于Kotlin流程。

需要实现什么:

  • 第一件商品一到就交付
  • 按照去抖动功能的工作方式对以下所有项目进行去抖动

kotlin kotlin-coroutines kotlin-flow

4
推荐指数
1
解决办法
1016
查看次数

以编程方式将imageview添加到所有viewcontrollers

有一个要求,例如向所有视图控制器添加一个imageview,但我有150多个xib,将imageview放入每个单独的xib中非常耗时。

有通用的方法吗?我用谷歌搜索,但没有发现有用的信息。

任何帮助,将不胜感激。

dynamic uiviewcontroller imageview ios swift

3
推荐指数
1
解决办法
104
查看次数

build.gradle.kts 中的 androidTest Groovy 模拟

在 Android Room 中测试迁移时,需要将此 Groovy 代码添加到 build.gradle 文件中

android {
...
    sourceSets {
        // Adds exported schema location as test app assets.
        androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 Gradle Kotlin DSL,所以我使用 Kotlin 而不是 Groovy 来处理 Gradle 文件(build.gradle.kts),但我在那里找不到 androidTest 的模拟(androidTest 未解析)。什么是 androidTest 以及 Kotlin 脚本中这段代码的模拟是什么?

groovy android kotlin build.gradle gradle-kotlin-dsl

3
推荐指数
1
解决办法
326
查看次数

StateFlow 中操作集合的正确方法

我正在像这样创建 MutableStateFlow:

val intSet = MutableStateFlow(HashSet<Int>())
Run Code Online (Sandbox Code Playgroud)

稍后我想更新此流程中的集合:

intSet.value.add(0)
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用(集合更新,但观察者没有收到通知)。我发现它的工作方式:

val list = HashSet<Int>(intSet.value)
list.add(0)
intSet.value = list
Run Code Online (Sandbox Code Playgroud)

但它创建了该集合的副本,因此它看起来不适合我。有没有更简单的方法来更新 StateFlow 中的集合?

collections kotlin kotlin-flow

3
推荐指数
1
解决办法
1149
查看次数