我很难理解如何正确使用language: java
sudo: true
dist: trusty
jdk: oraclejdk9
addons:
apt:
packages:
- oracle-java9-installer
before_install:
- chmod +x mvnw
,如果我想在用户向下按RxBinding
时调用网络请求,我希望会说出类似< / p>
SwipeRefreshLayout
但这对我不起作用,因为我将其包含在 RxSwipeRefreshLayout.refreshes(swipeContainer)
.flatMap { networkRequest() }
.subscribeBy(
onNext = { list: List<Data> -> Timber.d(data) },
onError = { showErrorSnackbar(it) },
onComplete = { Timber.d("On Complete") })
中的一个函数中,我在setupSwipeRefresh()
中调用它,因此只要调用onStart
网络请求是因为订阅布局时的。
现在我不确定该怎么做。我可以把整件事放在onStart
中,但这种做法违背了refreshListener
的目的。
或者我可以执行RxBinding
的{{1}}中的networkRequest
。但那时它看起来像
onNext
但是两次调用subscribe似乎就像一个反模式,
所以,是的,因为swipeContainer
在 RxSwipeRefreshLayout.refreshes(swipeContainer)
.subscribeBy(
onNext = {
networkRequest()
.subscribeBy(
onNext = { list: List<Data> ->
Timber.d(data)
})
},
onError = { showErrorSnackbar(it) },
onComplete = { Timber.d("On Complete") })
库中,所以必须有一种惯用的方法,因为它似乎是最常见的用例。
答案 0 :(得分:0)
你正在寻找这样的东西:
interface State { }
class IsLoading implements State { }
class LoadingResult implements State {
private final List<String> result;
public LoadingResult(List<String> result) {
this.result = result;
}
}
活动
{{1}}
SwitchMap与FlatMap类似,但它会切换到新的observable并从上级可观察中丢弃事件。