我正在尝试使用RxJava
进行一些尝试,而且我坚持认为这是一项简单的任务。
我们假设我们有两个Views
,View1
和View2
。
现在,我正在努力实现这一目标,当View1
可见时,View2
需要消失。
P.S。我正在搜索RxJava
解决方案。
正如我在评论中提到的,我试图使用RxView.visibility()
。
因此,我没有发布任何代码,因为它没有任何工作,而且它主要是一行。
至于失败的选民,至少要提一下你对这个问题的看法,所以我可以改进它。
答案 0 :(得分:1)
我真的不明白你在实验中想要做什么,我认为在你的情况下,你不需要RxJava,它通常是if / else条件,但是我已经想到了这个小例子,可能对你有帮助。
我只有EditText和Button作为视图:
RxTextView.textChanges(editText)
.map(text -> !TextUtils.isEmpty(text))
.subscribe(RxView.visibility(button));
仅当用户输入一些文字时,它才会显示该按钮。
答案 1 :(得分:1)
尝试:
RxView.layoutChangeEvents(view1)
.subscribe(ignore -> {
if (view1.getVisibility() == View.VISIBLE) {
view2.setVisibility(View.GONE);
} else {
view2.setVisibility(View.VISIBLE);
}
}, throwable -> new Exception(throwable));
答案 2 :(得分:0)
如果您通过RxView的visible()函数使用RxBinding库,则这是一个更好的解决方案:
view2.visibility(View.GONE).accept(view1.getVisibility() == View.VISIBLE);