我开始从build.gradle
(Groovy)迁移到build.gradle.kts
(Kotlin DSL)。问题是com.google.common.util.concurrent.ListenableFuture
(from com.google.guava
) 存在于几个依赖项中。由于该构建失败并java.lang.RuntimeException: Duplicate class ...
出现错误。
以前(当我build.gradle
在 Groovy 中时)这个问题是用这个片段解决的:
configurations {
all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}
Run Code Online (Sandbox Code Playgroud)
但是我使用 Kotlin DSL 找不到任何类似的东西。您能否为上面的代码片段提供 Kotlin 替代方案,或者建议任何其他解决方案来解决这个问题?
请解释每种方法的用例和优缺点。
接口的使用。
fun doSomethingWithCallback(callback: Callback) {
// Do something
callback.call()
}
Run Code Online (Sandbox Code Playgroud)使用高阶函数。
fun doSomethingWithCallback(callback: () -> Unit) {
// Do something
callback()
}
Run Code Online (Sandbox Code Playgroud)我有一个图像,我想在它上面绘制一个带有透明圆圈的深色矩形,所以结果将是这样的:
我最终得到了这段代码:
Box(modifier = Modifier
.clip(RectangleShape)
.fillMaxSize()
.background(Color.Black)
.pointerInput(Unit) {
detectTransformGestures { centroid, pan, zoom, rotation ->
scale *= zoom
}
}) {
Image(
modifier = Modifier
.align(Alignment.Center)
.graphicsLayer(
scaleX = maxOf(.2f, minOf(5f, scale)),
scaleY = maxOf(.2f, minOf(5f, scale))
),
bitmap = bitmap.asImageBitmap(),
contentDescription = null
)
Canvas(modifier = Modifier.fillMaxSize(), onDraw = {
drawRect(Color.Black.copy(alpha = 0.8f))
drawCircle(
Color.Transparent,
style = Fill,
blendMode = BlendMode.Clear
)
})
}
Run Code Online (Sandbox Code Playgroud)
但它似乎只是在图像顶部画了一个黑圆圈,而不是清除变暗的矩形......
如果您建议如何根据此圆坐标裁剪图像,这也会非常方便。
任何人都可以帮助我指出以下代码中使用asSequence()的区别。
val numbers = 1 .. 50
val output = numbers.filter{ it < 10 }.map{ Pair("Kotlin", it)}
output.forEach(::println)
Run Code Online (Sandbox Code Playgroud)
新增中 asSequence()
val numbers = 1 .. 50
val output = numbers.asSequence().filter{ it < 10 }.map{ Pair("Kotlin", it)}
output.forEach(::println)
Run Code Online (Sandbox Code Playgroud) 我有一个简单的OutlinedTextField
带有标签和文本的。根据设计,它不应该是集中的和/或可打字的。TextField
在单击事件中,应用程序应打开一个“选择器”对话框,并且在选择时,应更新的值。
因此,TextField 不应该:
作为备份选项,我尝试使一个简单的Text
看起来像 anOutlinedTextField
我认为使其看起来与 相同更困难OutlinedTextField
。
有什么建议么?
android kotlin android-jetpack-compose android-compose-textfield
我正在寻找将检测字符串中的重复符号的正则表达式.目前我找不到符合我所有要求的解决方案.
要求非常简单:
需要检测的示例(符号'a',超过2次,如果检测到则为true,否则为false)
"Abcdefg" - 错误
"AbcdaBCD" - 假
"abcd_ab_ab" - true(符号'a'使用了三次)
"aabbaabb" - 真(符号'a'使用了四次)
由于我不是正则表达式的专业人士和使用它们 - 代码片段和解释将不胜感激!
谢谢!