gpt4 book ai didi

kotlin - RxAndroid - 使用 RxView.touches 清除其他处理程序

转载 作者:行者123 更新时间:2023-12-02 12:43:49 26 4
gpt4 key购买 nike

我正在尝试将触摸处理程序添加到 FabricView ,但似乎这样做我不能再画草图了。事实上,FabricView 本身定义了一个 Touch 处理程序,但似乎我的尝试 - 使用 RxAndroid2 - 清除了预定义的处理程序,而不是链接到它。

我想要的是能够使用我的处理程序,而无需清除现有的处理程序。

这是我主要事件的一部分(sketchview 是 FabricView 的一个实例)

sketchView.backgroundMode = FabricView.BACKGROUND_STYLE_NOTEBOOK_PAPER
RxView.touches(sketchView, {_ -> true}).subscribe { // setting to false let me sketch, but I don't get any toast
event -> when(event.action){
MotionEvent.ACTION_DOWN -> {
toast("Starting")
}
MotionEvent.ACTION_UP -> {
toast("Stopping")
}
else -> {}
}
}

这是我的 app.gradle 的摘录:
compile 'com.github.antwankakki:FabricView:latest'
compile 'com.rmtheis:tess-two:7.0.0'
compile "io.reactivex.rxjava2:rxjava:2.1.0"
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
compile "org.jetbrains.anko:anko-commons:$anko_version"

为了使用 FabricView,我们必须在根 gradle 构建的 allProjects 部分中包含 JitPack。
allprojects {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
mavenCentral()
maven { url "https://jitpack.io" }
}
}

这是 the page of the FabricView source code .

最佳答案

RxView.touches()给你一个 ViewTouchObservable 调用 view.setOnTouchListener(listener)订阅以观察触摸事件。

Warning: The created observable uses View.setOnTouchListener() to observe touches. Only one observable can be used for a view at a time.



像这样你将触摸事件绝对绑定(bind)到这个 observable。它返回 true因此 onTouchEvent()不会被调用。要同时使用这两种行为,您可能需要重写 ViewTouchObservable一点点返回 false反而。

关于kotlin - RxAndroid - 使用 RxView.touches 清除其他处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45000060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com