Свойство видимости панели прогресса не работает с привязкой данных

#android #kotlin #mvvm #data-binding

#Android #kotlin #mvvm #привязка данных

Вопрос:

Свойство видимости не работает

       <data>
    <import type="android.view.View"/>
  
    <variable
        name="viewmodel"
        type="com.wiesoftware.spine.ui.auth.LoginViewModel" />
</data>
  

Это мой код progressbar

  <ProgressBar
        android:id="@ id/pbLogin"
        android:visibility="@{viewmodel.isVisibles ? View.VISIBLE : View.GONE, default=gone}"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="@ id/editTextTextPersonName2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@ id/editTextTextPersonName" />
  

Я изменяю значение isVisibles в ViewModel, но это не отражает, пожалуйста, дайте решение. Это класс, в котором я изменяю значение isVisibles.

 class LoginViewModel(
    private val authRepositry: AuthRepositry
):ViewModel() {
    var email:String?=null
    var password:String?=null
    var loginEventListener:LoginEventListener?=null
    var isVisibles:Boolean=false
    fun loginButtonClicked(view: View){
        isVisibles=true
        if (email.isNullOrEmpty() || password.isNullOrEmpty()){
            loginEventListener?.onLoginFailed("Please enter credentials.")
            isVisibles=false
            return
        }
}
}```

> I have updated viewmodel class please check and let me know where is the issue I am using Kotlin Please provide me solution thanks








   
  

Комментарии:

1. опубликуйте свой метод isVisibles()

2. Вы привязали свою ViewModel к этому макету? binding.viewmodel = myViewModel например

Ответ №1:

попробуйте добавить это

 binding.lifecycleOwner = this // activity