小编ame*_*cle的帖子

多个不同的指针输入

我目前正在尝试实现在可组合项可缩放、可平移(拖动表面)或两者之间切换的选项。到目前为止,有效的方法是切换相应的按钮,以达到预期的结果。不起作用的是切换一个按钮与另一个按钮 - 这会产生保留第一个按钮功能的意外结果。例如,假设缩放处于活动状态。当我按下平移按钮时,背景突出显示会相应变化,所有测试日志都显示预期状态 - 但表面仍然可缩放,不可拖动。我首先必须手动禁用缩放。关于为什么会发生这种情况有什么想法吗?

  Modifier.run {
            if (zoomEnabled) {
                this.pointerInput(Unit) {
                    detectTransformGestures { _, _, zoom, _ ->
                        passScale(zoom)
                    }
                }
            } else if (panEnabled) {
                this.pointerInput(Unit) {
                    detectDragGestures { change, dragAmount ->
                        change.consumeAllChanges()
                        passOffsetX(dragAmount.x / 3)    
                        passOffsetY(dragAmount.y / 3)    
                    }   
                }
            } else
                this
        }
Run Code Online (Sandbox Code Playgroud)

纽扣:

@Composable
fun TopBarAction(
    zoomEnabled: Boolean,
    passZoomEnabled: (Boolean) -> Unit,
    panEnabled: Boolean,
    passPanEnabled: (Boolean) -> Unit
) {
    IconToggleButton(
        checked = zoomEnabled,
        onCheckedChange = {
            passPanEnabled(false)
            passZoomEnabled(it)
        },
        modifier = Modifier
            .background(
                if …
Run Code Online (Sandbox Code Playgroud)

kotlin android-jetpack-compose

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

标签 统计

android-jetpack-compose ×1

kotlin ×1