我想与ViewModel中的View(Activity)进行交互。使用ViewModel中的View.VISIBLE

时间:2018-06-12 04:44:52

标签: java android mvvm

我想隐藏并显示我的代码视图。一种选择是使用我的ViewModel中的View.VISIBLE,但这会影响ViewModel中代码的测试。

我已经读过,使用ViewModel中的Android特定内容并不是一个好习惯。

我可以创建一个界面并与视图进行交互,但这将引用该视图。这会是一个好方法吗?我目前使用 ViewModel生命周期组件并使用BaseObservable扩展我的课程。

例如

我有

    @Bindable
    public int getButtonsVisibility() {
     //return visibility 
    }

 public void setButtonsVisibility(int buttonsVisibility) {
        this.buttonsVisibility = buttonsVisibility;
        notifyPropertyChanged(BR.buttonsVisibility);
    } 

现在如果我想从我的viewModel中调用setButtonsVisibility(View.VISIBLE),那会是一个好方法吗?

1 个答案:

答案 0 :(得分:0)

我遵循这种方法来管理可见性..

<data>
    <import type="android.view.View"/>
    <variable
        name="visible"
        type="java.lang.Boolean"/>
</data>

<View android:visibility="@{visible ? View.GONE : View.VISIBLE}"/>