私はFabricViewにタッチハンドラを追加しようとしていますが、そうすることでそれ以上スケッチすることはできません。実際、FabricView自体がTouchハンドラを定義していますが、RxAndroid2を使用している私の試みは、あらかじめ定義されたハンドラをチェーン化するのではなくクリアしているようです。RxView.touchesを使ってRxView.touchesを使って他のハンドラをクリアする
私が望むのは、既存のものをクリアすることなくハンドラを使用できることです。
これは
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からの抽出物である(sketchviewがFabricViewのインスタンスである)私の主な活動の一部である:
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ルートグラデルビルドのallProjects部分にJitPackを含める必要があります。
allprojects {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
mavenCentral()
maven { url "https://jitpack.io" }
}
}
これはthe page of the FabricView source codeです。
ありがとうございます。私は今あなたのソリューションをテストしています。 – loloof64
コードを修正しようとすると問題が発生しました: 'import static com.jakewharton.rxbinding2.internal.Preconditions.checkMainThread;'実際にはJake Wharton実装の内部です。 – loloof64
'RestrictTo'部分をインライン化したり無視したりすることができます。 – tynn