小编Can*_*ato的帖子

kotlin中密封类与密封接口有什么区别

随着 Kotlin1.5的推出sealed interface,. 即使我知道类和接口之间的区别,我也不清楚使用sealed interfaceover的最佳实践和好处是什么sealed class

interface即使是简单的情况,我是否应该始终使用now ?还是将视具体情况而定?

谢谢

Obs:没有发现类似的问题,只是关于sealed classes

interface kotlin sealed-class kotlin-sealed

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

Dispatcher IO 的用法和 Default 的区别

在这个问题中:Kotlin Coroutines 选择 Dispatcher 我们可以理解Dispatcher.Default在 CPU 进程上使用,例如图像/视频转换以及Dispatcher.IO在写入/读取文件或 API 连接时。

但是在类Dispatcher.kt文档中,IO您会发现:

* This dispatcher shares threads with a [Default][Dispatchers.Default] dispatcher, so using
* `withContext(Dispatchers.IO) { ... }` does not lead to an actual switching to another thread —
* typically execution continues in the same thread.
Run Code Online (Sandbox Code Playgroud)

所以基本上它们无论如何都运行在同一个线程上。有真正的区别还是最终每个人使用都无关紧要?

谢谢!

kotlin kotlin-coroutines

31
推荐指数
2
解决办法
9622
查看次数

Android 12 Pending Intent Immutable 标志在 API 23 下不可用

与这个问题类似,但不一样

更新到 Android 12 (SDK 31) 后,我们更改PendingIntent.getActivity(context, 0, intent, 0)PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)建议

PendingIntent.FLAG_IMMUTABLE不适用于 23 以下的 SDK。如果我添加if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)以保留两个版本,我会保留有关未使用正确标志的 lint 警告else

这里的预期行为是什么?谢谢!

android android-pendingintent android-12

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

如何使用 Firebase 测试实验室进行 UI 测试 Jetpack Compose?

为了测试撰写布局,我们有一个默认库。

要运行Firebase 测试实验室(FTL),它表示您需要EspressoUI Automator框架。

但我不确定这是否已经过时。

将我的 APK (使用 jetpack compose 和 compose 测试框架)放在 FTL 上进行测试适用于真实设备,但不适用于虚拟设备。

我的问题是,预期的方法是什么?

  • 将 Espresso 添加到我的所有 UI 测试中,并在 Jetpack Compose 上使用 Espresso(这可能吗?)
  • 仅使用真实物理设备运行 FTL。虚拟可能会到来吗?
  • 有一种方法可以在虚拟设备上运行组合测试,但我没有找到。?

谢谢!

android firebase firebase-test-lab android-jetpack-compose android-jetpack-compose-testing

11
推荐指数
0
解决办法
453
查看次数

Android Studio 3.3文件夹图标

在新的Android Studio 3.3上,某些图标已更改,我希望了解每个按钮的含义。

这个这个答案已经过时了。

例如,在这张图片中,我的项目中有两个模块,但是一个模块带有一个绿点,另一个模块是条形图。这是什么意思?

在此处输入图片说明

intellij-idea android-studio

9
推荐指数
1
解决办法
860
查看次数

如何使用真正的浮动操作按钮(FAB)扩展?

消除对重复的任何疑虑或想法:在Material Design上定义什么是"扩展".

FAB  - 扩展FAB

但大多数人都将"扩展"与" 转型类型:快速拨号 " 混为一谈,难以找到解决方案.喜欢这里

FAB  - 过渡类型:快速拨号

问题 所以我期待的是如何使用文本和扩展大小设置FAB.

今天我的代码是这样的:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/maps_main_distance_btn"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="8dp"
    android:text="@string/str_distance_btn"
    app:elevation="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />
Run Code Online (Sandbox Code Playgroud)

但我的按钮看起来像这样:

在此输入图像描述

没有文字,没有正确的格式.我在Constraint Layout中使用它.

java android floating-action-button

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

ARCore – 会话、帧、相机和姿势

我正在学习 ARCore参考资料开发,从Coursera制作课程,并阅读、理解和学习示例

但是我仍然缺少一些实际使用示例的定义。

什么是会话?每次我需要使用 ARCore 时,我都需要一个会话吗?Session 总是有一个摄像头连接,所以我可以在屏幕上看到和绘制/渲染我的 3D 模型?我可以在没有会话的情况下执行此操作吗?

Camera有getPose,Frame有GetPose,它们有什么区别?

我想过把这个问题分开,但不知何故我知道它们都是相连的。会话、CameraAr、框架和姿势。

java augmented-reality arcore

5
推荐指数
1
解决办法
2495
查看次数

Send 和 Offer 之间的 Kotlin Channels 使用差异

通道有两个功能允许我们向其中发送事件。 Sendoffer

我想更好地理解两者之间的区别。

我有一些说法想核实一下是否属实。

  • Send是一个挂起函数。什么会让我的代码(而不是线程)等待它完成。因此,在内部事件send完成/取消后,它会继续运行。或者它只会挂起,直到我可以对事件进行排队/接收它?
  • 这意味着,如果我send从一个通道使用到另一个通道,第一个通道将被阻塞,直到第二个通道可以接收/排队?
  • 如果我有一个Rendezvous Channel 并且它已经在运行某些东西(例如挂起时,等待 API),并且我有offer一个新的事件。这会引发offer异常吗?导致频道收不到?

如果您知道任何其他主要区别,我会很高兴知道。

提前致谢

channel kotlin kotlin-coroutines kotlin-coroutine-channel

5
推荐指数
1
解决办法
2689
查看次数

@MockK 或mockk()

使用Mockk进行Android单元测试时,声明依赖项时使用符号有什么区别吗?

class Test {
    private val x: X = mockk()

    private val test = TestClass(x)
...
}
Run Code Online (Sandbox Code Playgroud)

或者

class Test {
    @MockK
    private lateinit var x: X

    @InjectMockKs
    private lateinit var test: TestClass
    
    @Before
    fun setup() {
        MockKAnnotations.init(this)
    }
...
}
Run Code Online (Sandbox Code Playgroud)

android unit-testing mockk

5
推荐指数
1
解决办法
2741
查看次数

更改按钮的启用颜色,而不更改禁用的颜色

所以我研究了很多,有很多问题和答案谈论按钮和颜色.但在你投票之前看到这个问题更具体,更实际,我没有找到答案.

我正在使用元素Button作为我的xml布局.来自android.widget的Button类,它扩展了TextView.

此视图可以通过java代码标记为启用或禁用..setEnabled(true|false).

按钮xml代码

<Button
    android:id="@+id/maps_list_save_button"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="@string/str_save"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />
Run Code Online (Sandbox Code Playgroud)

我想要的是什么:

在此输入图像描述 当我的按钮启用时,我想给他一个紫色.

在此输入图像描述 当我的按钮被禁用时,获得灰色.

我不想做的事:

创建一个新元素并包含布局,我正在避免这个,因为我想保留选定的动画,提升,填充,提升等.再创建一切并不聪明.

我已经尝试过:

更改背景 =它松开内部填充,什么使按钮更大,我想保持材料设计"规则" 在此输入图像描述在此输入图像描述

更改主题 =我尝试通过编辑器和代码更改主题,但发生了两件事:或者我更改了不是按钮的更多内容,或者我更改了相同颜色的启用和禁用.

即使在寻找文档,我也没有找到如何正确使用这个元素.

android android-theme android-button android-view android-styles

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

Kotlin EditText以编程方式显示/隐藏密码

我知道如何在Java上执行此操作。我将代码从Java复制并粘贴到Kotlin,而Android Studio更改为:

auth_password_text.setInputType(InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD)
Run Code Online (Sandbox Code Playgroud)

但是我收到一条消息(灰色不是警告般的黄色) 在此处输入图片说明

我搜索并仅找到Java并做出了本机答案,但不是Kotlin中执行此操作的最佳/正确方法。

先感谢您!

android kotlin

2
推荐指数
1
解决办法
1847
查看次数

我如何获得我的 MD5 和 SHA-256?

我需要在亚马逊帐户中同时使用 MD5 和 SHA-256 值。

android

-2
推荐指数
1
解决办法
1796
查看次数