小编Dem*_*god的帖子

如何从 Kotlin DSL build.gradle 中的所有依赖项中排除库?

我开始从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 替代方案,或者建议任何其他解决方案来解决这个问题?

android gradle kotlin gradle-kotlin-dsl kotlin-dsl

19
推荐指数
2
解决办法
6677
查看次数

Kotlin 中更好的回调方法是什么?侦听器与高阶函数

请解释每种方法的用例和优缺点。

  1. 接口的使用。

    fun doSomethingWithCallback(callback: Callback) {
        // Do something
        callback.call()
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用高阶函数。

    fun doSomethingWithCallback(callback: () -> Unit) {
        // Do something
        callback()
    }
    
    Run Code Online (Sandbox Code Playgroud)

android kotlin

12
推荐指数
1
解决办法
9340
查看次数

Android Compose:在图像上绘制透明圆圈

我有一个图像,我想在它上面绘制一个带有透明圆圈的深色矩形,所以结果将是这样的: https://www.google.com/url?sa=i&url=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F36763696%2Fhow-to-create-a-transparent-circle-inside-rectangle-shape-in​​- xml-in-android&psig=AOvVaw18ZjvY-j8QyYzFw1xsmOdJ&ust=1630768957499000&source=images&cd=vfe&ved=0CAsQjRxqFwoTCPD1mveN4_ICFQAAAAAdAAAAABAE

我最终得到了这段代码:

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)

但它似乎只是在图像顶部画了一个黑圆圈,而不是清除变暗的矩形......

如果您建议如何根据此圆坐标裁剪图像,这也会非常方便。

android android-jetpack-compose

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

在Kotlin中的数组中添加asSequence()的优势

任何人都可以帮助我指出以下代码中使用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)

sequence kotlin

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

如何使 TextField 不可点击/不可聚焦?

我有一个简单的OutlinedTextField带有标签和文本的。根据设计,它不应该是集中的和/或可打字的。TextField在单击事件中,应用程序应打开一个“选择器”对话框,并且在选择时,应更新的值。

因此,TextField 不应该:

  • 能够集中注意力
  • 打开键盘
  • 接受文本插入或输入它应该:
  • 可点击

作为备份选项,我尝试使一个简单的Text看起来像 anOutlinedTextField我认为使其看起来与 相同更困难OutlinedTextField

有什么建议么?

android kotlin android-jetpack-compose android-compose-textfield

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

用于检测重复符号的正则表达式

我正在寻找将检测字符串中的重复符号的正则表达式.目前我找不到符合我所有要求的解决方案.

要求非常简单:

  • 检测字符串中的任何重复符号;
  • 能够设置重复计数(例如,超过两次)

需要检测的示例(符号'a',超过2次,如果检测到则为true,否则为false)

"Abcdefg" - 错误

"AbcdaBCD" -

"abcd_ab_ab" - true(符号'a'使用了三次)

"aabbaabb" - (符号'a'使用了四次)

由于我不是正则表达式的专业人士和使用它们 - 代码片段解释将不胜感激!

谢谢!

java regex

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