问题标签 [rx-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2536 浏览

android - rx 函数 Action1 是否已被弃用?

我在我的 Android 应用程序中有一个用例,我希望允许用户在开始搜索之前输入“一定数量”的文本进行搜索。当用户键入其他文本时,我想使用输入的完整文本启动进一步的搜索。

在研究了许多选项后,我找到了 Jake WhartonsRxBinding图书馆,并认为这将是一个很好的解决方案

使用如下代码:-

但是我无法导入Action1,上面的代码不再有效吗?我缺少哪个依赖项?

我的 gradle 文件类似于这个

0 投票
4 回答
1527 浏览

android - 如何实现用户输入的定期处理?

我当前的 Android 应用程序允许用户远程搜索内容。

例如,用户会看到一个EditText接受他们的搜索字符串并触发远程 API 调用,返回与输入文本匹配的结果。

更糟糕的情况是我TextWatcher每次调用时只需添加一个并触发一个 API 调用onTextChanged。这可以通过强制用户在进行第一次 API 调用之前输入至少 N 个字符进行搜索来改进。

“完美”解决方案将具有以下特点:-

一旦用户开始输入搜索字符串

定期(每 M 毫秒)消耗输入的整个字符串。每次期限到期且当前用户输入与之前的用户输入不同时触发 API 调用。

[是否可以有与输入文本长度相关的动态超时?例如,当文本“短”时,API 响应大小会很大,返回和解析需要更长的时间;随着搜索文本变长,API 响应大小将随着“飞行”和解析时间而减少]

当用户重新开始在 EditText 字段中输入时,重新开始定期使用文本。

每当用户按下 ENTER 键触发“最终”API 调用,并停止监视用户对 EditText 字段的输入。

设置用户在触发 API 调用之前必须输入的最小文本长度,但将此最小长度与覆盖的超时值结合起来,以便当用户希望搜索“短”文本字符串时,他们可以。

我确信 RxJava 和/或 RxBindings 可以支持上述要求,但是到目前为止我还没有实现可行的解决方案。

我的尝试包括

这与 RxBinding

两者都没有给我一个结合输入文本长度和超时值的条件过滤器。

我还用throttleLast 和sample 替换了debounce,两者都没有提供所需的解决方案。

是否有可能实现我所需的功能?

动态超时

可接受的解决方案将应对以下三种情况

一世)。用户希望搜索以“P”开头的任何单词

ii)。用户希望搜索以“Pneumo”开头的任何单词

三)。用户希望搜索词“Pneumonoultramicroscopicsilicovolcanoconiosis”

在所有三种情况下,只要用户键入字母“P”,我就会显示一个进度微调器(但是此时不会执行任何 API 调用)。我想在响应式 UI 中为用户提供搜索反馈与通过网络进行“浪费”API 调用之间取得平衡。

如果我可以依靠用户输入他们的搜索文本然后单击“完成”(或“Enter”)键,我可以立即启动最终的 API 调用。

情景一

由于用户输入的文本长度较短(例如 1 个字符长),我的超时值将处于最大值,这使用户有机会输入其他字符并节省“浪费的 API 调用”。

由于用户希望单独搜索字母“P”,因此一旦 Max Timeout 到期,我将执行 API 调用并显示结果。这种情况给用户带来了最糟糕的用户体验,因为他们必须等待我的动态超时到期,然后等待返回并显示大型 API 响应。他们不会看到任何中间搜索结果。

方案二

这个场景结合了场景一,因为我不知道用户要搜索什么(或搜索字符串的最终长度)如果他们“快速”键入所有 6 个字符我可以执行一个 API 调用,但是他们输入的速度越慢 6字符会增加执行浪费的 API 调用的机会。

这种情况为用户提供了改进的用户体验,因为他们必须等待我的动态超时到期,但是他们确实有机会看到中间搜索结果。API 响应将小于方案一。

场景三

这个场景结合了场景一和场景二,因为我不知道用户将要搜索什么(或搜索字符串的最终长度),如果他们“快速”键入所有 45 个字符我可以执行一个 API 调用(也许!),但是他们键入 45 个字符的速度较慢将增加执行浪费的 API 调用的机会。

我不依赖于提供我想要的解决方案的任何技术。我相信 Rx 是迄今为止我发现的最好的方法。

0 投票
1 回答
608 浏览

kotlin - 混淆使用 Kotlin 和 rx-java combineLatest 进行表单验证

所以我想使用 rx-java2 进行表单验证。我正在使用科特林。我遇到了两个问题。emailObservable 和 passwordObservable 都是 type Disposable!。我试图通过调用来指定类型,val emailObservable: Observable<Boolean>但 Android Studio 认为它的Disposable!.

其次,当我想使用方法时,combineLatest我得到了一个错误:以下函数都不能用提供的参数调用。

emailObservable 和 passwordObservable 都可以正常工作。我是 rx-java 的新手,我对这种类型的东西感到困惑。

0 投票
0 回答
125 浏览

rx-java2 - rxbinding,seekbar,只发出一个值

代码如下:

我正在尝试捕获值更改的用户事件,问题是我在控制台中看不到任何日志 - observable 没有发出任何值。我对 rxjava 很陌生,所以如果您有任何建议,我将不胜感激!

0 投票
1 回答
134 浏览

android - 按下按钮RxJava2后如何切换地图

我研究switchMap。案例是:1)用户按下按钮1 2)View调用Presenter方法getRecord(id),并发送按钮id。3) 演示者订阅 observable 并发出数据 4) 用户按下按钮 2 5) 演示者取消订阅当前订阅并创建新的。

我知道我必须使用 switchMap 运算符。我想在日志中看到:Obs1: 0, Obs1: 1, Obs1: 2(click) Obs2: 0, Obs2: 1 .... 这是我的代码查看:

主持人:

0 投票
1 回答
281 浏览

android - 使用 RxBinding 同步两个视图

我使用 RxJava 的 throttleFirst 一秒钟来避免快速单击按钮,但是我也希望在单击按钮时第二个按钮也被禁用一秒钟,反之亦然,因此,简而言之,我不允许快速单击这两个按钮又一个……你会推荐什么?我可以使用 RxBinding 实现这一点吗?

0 投票
1 回答
516 浏览

java - Kotlin 中的 RxTextView 无法从 KFunction1 中提取字符串

在 Java 中,我使用 RxTextView 并在 Fragment 中调用 .subscribe() 来调用 String 作为参数并将其传输到 Presenter 中的方法。一切正常。

爪哇:

我对 Kotlin 中的 RxTextView 感到困惑,因为在函数 .subscribe( ... ) 中,值参数是一个通用的变量,而不是像 Java 中的字符串。

科特林:

如何从 EditText 获取正确的字符串值并将其与 Java 中的 .subscibre() 连接起来?

解决方案

我将 .map{CharSequence::toString} 替换为: .map{ it.toString() }

0 投票
1 回答
258 浏览

android-studio - 如何使用 Rxbinding 将 Spinner 项目值发送给多个订阅者

安卓 :

到目前为止,我已经实现的是,使用 itemSelection() 为直接订阅者获取微调​​器值。代码 :

我想要实现的是:

我想为这个 Observable 订阅多个观察者。我为此创建了几个观察者并使用了

要在这些观察者上获取微调器更新值,但这不起作用,这些观察器的 OnNext() 不会在微调器值更改时被调用。

(注意:这种情况在使用 on textchange() 的 RxBinding Textview 的情况下非常有效)。

如果你能帮我解决这个问题,肯定会投票。

0 投票
1 回答
44 浏览

android - Usage of RxFloatingActionButton

In trying to adapt some standard Android programming to RxBinding I'm stuck on RxFloatingActionButton. The class has one method, visibility(view), which returns a Consumer<Boolean>. Yet the Javadoc says "The created observable keeps a strong reference to {@code view}." Where is the "created observable"? A very brief usage example would help greatly. I assume that to detect clicks on the FAB, I would use the normal View click observable?

0 投票
1 回答
57 浏览

android - 如何使用 rxJava 收集表单输入、评估和有条件地转到另一个视图或发布数据

我有一个带有 rx-binding observables 的两个输入设置的表单,并且我有验证工作以启用/禁用我的提交。

我正在努力思考的是表单提交。单击提交时。我需要从表单输入中获取最新值。然后评估我是否需要更多信息,这会导致调用视图以转到不同的页面。如果不需要更多信息,那么我需要进行改造。

我不确定获取最新表单值的正确方法(combineLatest、withLatestFrom、zip?)以及如何有条件地回调视图与改造后的帖子,特别是应该由操作员直接处理的内容,与来自的组合回调combineLatest,与订阅回调。

感谢您的任何帮助。