随着 Kotlin1.5
的推出sealed interface
,. 即使我知道类和接口之间的区别,我也不清楚使用sealed interface
over的最佳实践和好处是什么sealed class
interface
即使是简单的情况,我是否应该始终使用now ?还是将视具体情况而定?
谢谢
Obs:没有发现类似的问题,只是关于sealed classes
在这个问题中: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)
所以基本上它们无论如何都运行在同一个线程上。有真正的区别还是最终每个人使用都无关紧要?
谢谢!
与这个问题类似,但不一样
更新到 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
。
这里的预期行为是什么?谢谢!
为了测试撰写布局,我们有一个默认库。
要运行Firebase 测试实验室(FTL),它表示您需要Espresso
或UI Automator
框架。
但我不确定这是否已经过时。
将我的 APK (使用 jetpack compose 和 compose 测试框架)放在 FTL 上进行测试适用于真实设备,但不适用于虚拟设备。
我的问题是,预期的方法是什么?
谢谢!
android firebase firebase-test-lab android-jetpack-compose android-jetpack-compose-testing
在新的Android Studio 3.3上,某些图标已更改,我希望了解每个按钮的含义。
例如,在这张图片中,我的项目中有两个模块,但是一个模块带有一个绿点,另一个模块是条形图。这是什么意思?
消除对重复的任何疑虑或想法:在Material Design上定义什么是"扩展".
但大多数人都将"扩展"与" 转型类型:快速拨号 " 混为一谈,难以找到解决方案.喜欢这里
问题 所以我期待的是如何使用文本和扩展大小设置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中使用它.
通道有两个功能允许我们向其中发送事件。
Send
和offer
。
我想更好地理解两者之间的区别。
我有一些说法想核实一下是否属实。
Send
是一个挂起函数。什么会让我的代码(而不是线程)等待它完成。因此,在内部事件send
完成/取消后,它会继续运行。或者它只会挂起,直到我可以对事件进行排队/接收它?send
从一个通道使用到另一个通道,第一个通道将被阻塞,直到第二个通道可以接收/排队?offer
一个新的事件。这会引发offer
异常吗?导致频道收不到?如果您知道任何其他主要区别,我会很高兴知道。
提前致谢
使用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) 所以我研究了很多,有很多问题和答案谈论按钮和颜色.但在你投票之前看到这个问题更具体,更实际,我没有找到答案.
我正在使用元素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
我知道如何在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 ×7
kotlin ×4
java ×2
android-12 ×1
android-jetpack-compose-testing ×1
android-view ×1
arcore ×1
channel ×1
firebase ×1
interface ×1
mockk ×1
sealed-class ×1
unit-testing ×1