Это не будет работать, потому что вы пытаетесь настроить прослушиватели с несколькими щелчками на представлении в следующих местах:
android:onClick="@{()->viewModel.onButtonClick(true)}"
и
setOnClickListener(this)
Если я правильно понимаю ваш вопрос, один раз пользователь нажимает кнопку, сначала должна выполняться анимация, а затем должно быть выполнено действие в соответствующей модели представления.
Вы можете реализовать интерфейс между вашим классом CustomButton и вашей ViewModel
interface CustomButtonClickListener {
fun onClick()
}
Реализуйте этот интерфейс в вашей ViewModel. При связывании данных отправьте этот прослушиватель интерфейса на пользовательскую кнопку с пользовательскими атрибутами. Примерно так:
<data>
<variable name="vm"
type="*path_vm*" />
</data>
И передать этот vm своей CustomLabel
app:listener="@{vm}"
Вы можете сослаться this , чтобы создать пользовательские атрибуты для своего класса CustomLabel
Теперь, когда анимация вашей кнопки заканчивается, вам нужно только вызвать метод интерфейса, и переопределенный метод ViewModel должен быть вызван
listener.onClick()
Дайте мне знать, если у вас есть какие-либо другие вопросы:)