#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