RxAndroid – 使用RxView.touches清除其他处理程序
我正在尝试将触摸处理程序添加到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 build的allProjects部分中包含JitPack。
allprojects { repositories { jcenter() maven { url 'https://maven.google.com' } mavenCentral() maven { url "https://jitpack.io" } } }
这是FabricView源代码的页面 。
RxView.touches()
返回一个ViewTouchObservable
, view.setOnTouchListener(listener)
在订阅时调用view.setOnTouchListener(listener)
来观察触摸事件。
警告:创建的observable使用
View.setOnTouchListener()
来观察触摸。 一次只能观察一个观察点。
像这样,你可以将触摸事件完全绑定到这个可观察对象上。 它返回true
,因此onTouchEvent()
将不会被调用。 要使用这两种行为,您可能需要稍微重写ViewTouchObservable
然后返回false
。
- 将JavaScript哈希函数复制到java / kotlin
- 无法得到类型为…的对象的未知属性“anko_version”?
- 我们必须首先学习java来学习kotlin吗?或者我可以直接启动它?
- Spring JPA无法在Kotlin数据类中使用自定义setter映射字段
- 如何从Java获取Kotlin属性的注释?
- 如何在Kotlin中使用Gson注册一个InstanceCreator?
- 用新的kotlin 1.1构建错误,kapt不能解析数据绑定参数
- Int :: class.javaPrimitiveType.kotlin引用不等于Int :: class.javaObjectType.kotlin
- 使用kotlin的房间数据库