Я посмотрел на это !. реализация там хороша, только вы не должны использовать
selectedAnswer.setOnClickListener {//<===this part need to be removed as its setting onClick which will work if next time same button is clicked
if (!mAnimator!!.isRunning) {
mCurrentLevel = 0;
mAnimator!!.start()
}
}
часть должна быть удалена как ее настройка onClick, которая будет работать, если в следующий раз та же кнопка нажмет
, если вы хотите воспроизводить анимацию только при нажатии любой кнопки ответа. вам нужно установить аниматор во время установки опций для текстовых представлений / кнопок ответа
Ниже код может дать вам идею
firstOptionTextView.setText(Put the Option here);
if (firstOptionTextView.text.toString() == listOfTests[currentQuestion].rightAnswer){
val layerDrawable = selectedAnswer.background as LayerDrawable
mClipDrawable =
layerDrawable.findDrawableByLayerId(R.id.clip_drawable_false) as ClipDrawable
mAnimator = TimeAnimator()
mAnimator!!.setTimeListener(this)
firstOptionTextView.setOnClickListener {
if (!mAnimator!!.isRunning) {
mCurrentLevel = 0;
mAnimator!!.start()
}
}
} else {
val layerDrawable = selectedAnswer.background as LayerDrawable
mClipDrawable =
layerDrawable.findDrawableByLayerId(R.id.clip_drawable_true) as ClipDrawable
mAnimator = TimeAnimator()
mAnimator!!.setTimeListener(this)
firstOptionTextView.setOnClickListener {
if (!mAnimator!!.isRunning) {
mCurrentLevel = 0;
mAnimator!!.start()
}
}
сейчас, так как эта опция имеет аниматор либо для правильного или неправильного воспроизведения будет воспроизведен.