Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 停止Jetpack Compose pointerInteropFilter使用输入事件_Android_Kotlin_Android Jetpack_Android Jetpack Compose - Fatal编程技术网

Android 停止Jetpack Compose pointerInteropFilter使用输入事件

Android 停止Jetpack Compose pointerInteropFilter使用输入事件,android,kotlin,android-jetpack,android-jetpack-compose,Android,Kotlin,Android Jetpack,Android Jetpack Compose,我有一个垂直的列,它有两个孩子: 一个寻呼机可组合(来自),显示文本 绘制两条弧和一个圆的画布可组合 它们的顺序与此处描述的相同。我希望文本始终呈现在画布后面 实施细节 Canvascomposable有一个处理MotionEvent.ACTION\u DOWN和MotionEvent.ACTION\u MOVE的修饰符.pointerInteropFilter。如果事件不在弧的10%距离内,则忽略该事件,并返回false 我的理解是返回false将表明事件尚未被消费,因此将被传递给寻呼机处理

我有一个垂直的
,它有两个孩子:

  • 一个
    寻呼机
    可组合(来自),显示
    文本
  • 绘制两条弧和一个圆的
    画布
    可组合
  • 它们的顺序与此处描述的相同。我希望
    文本
    始终呈现在
    画布
    后面


    实施细节
    Canvas
    composable有一个处理
    MotionEvent.ACTION\u DOWN
    MotionEvent.ACTION\u MOVE
    修饰符.pointerInteropFilter
    。如果事件不在弧的10%距离内,则忽略该事件,并返回
    false

    我的理解是返回
    false
    将表明事件尚未被消费,因此将被传递给
    寻呼机处理,但事实并非如此。一旦注册了
    修饰符.pointerInteropFilter
    ,无论返回
    true
    false
    Pager
    都不会接收输入事件


    布局 为了简洁起见,下面是我当前实现的简化版本。我有一个
    ,它首先呈现
    页面
    ,然后呈现
    画布

    列(
    modifier=modifier.fillMaxSize(),
    垂直布置=中心布置
    ) {
    //寻呼机应始终呈现在画布后面。这是为了
    //防止拖动时文本在顶部呈现。
    水平寻呼机(
    state=rememberPagerState(pageCount=8000,initialPage=4000)
    ){第页->
    正文(
    modifier=modifier.fillMaxWidth(),
    text=“25:00”,
    textAlign=textAlign.Center,
    fontSize=60.sp
    )
    }
    }
    通过记住{mutableStateOf(0.25f)}
    ArcSeekBar(进度,错误){change->
    进步=改变
    }
    
    在本例中,我将
    指针teropfilter
    硬编码为始终返回false,前提是它不会消耗/阻止事件,从而允许它传递到
    寻呼机

    @Composable
    趣味ArcSeekBar(进度:浮点,交互:布尔,更改:(浮点)->单位){
    val扫掠角=270.0f
    变量宽度:通过记住{mutableStateOf(0)}
    变量高度:通过记住{mutableStateOf(0)}
    帆布(
    修饰语=修饰语
    .fillMaxSize()
    .aspectRatio(1.0f)
    Onsizechange先生{
    宽度=it.width
    高度=it.height
    }
    .pointerInteropFilter{
    //为简洁起见,减少了,但不管函数返回什么
    //可在其后面组合的寻呼机将永远不会接收输入事件。
    假的
    },
    ) {
    //为简洁起见,请省略,绘制两条圆弧和一个圆
    }
    }
    

    作为参考,“我的布局”生成以下内容:


    发布您的文档的相关部分code@GabrieleMariotti更新