隐藏一个视图取决于另一个的可见性

时间:2017-12-12 07:51:22

标签: android rx-java

我正在尝试使用RxJava进行一些尝试,而且我坚持认为这是一项简单的任务。 我们假设我们有两个ViewsView1View2。 现在,我正在努力实现这一目标,当View1可见时,View2需要消失。

P.S。我正在搜索RxJava解决方案。

编辑2

正如我在评论中提到的,我试图使用RxView.visibility()。 因此,我没有发布任何代码,因为它没有任何工作,而且它主要是一行。 至于失败的选民,至少要提一下你对这个问题的看法,所以我可以改进它。

3 个答案:

答案 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);