Я использую Lott ie и Epoxy в моем Android проекте с DataBinding. Я хотел бы запустить анимацию с LottieImageView, когда RecyclerView привязан, но LottieImageView не запускает анимацию, когда он установлен на autoPlay=true
.
Контроллер Epoxy находится ниже:
class MainController : EpoxyController() {
var currentSnappedPosition = 0
set(value) {
field = value
requestModelBuild()
}
override fun buildModels() {
repeat(10) {
ItemBindingModel_()
.id(modelCountBuiltSoFar)
.isSnapped(currentSnappedPosition == modelCountBuiltSoFar)
.addTo(this)
}
}
}
currentSnappedPosition
обновляется, когда привязывается элемент RecyclerView, а затем вызывается rquestModelBuild()
.
Файл макета находится ниже:
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import
type="android.view.View" />
<variable
name="isSnapped"
type="boolean" />
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.airbnb.lottie.LottieAnimationView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="@{isSnapped ? View.VISIBLE : View.GONE }"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/lunar_new_year"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:text="not snapped..."
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="@{isSnapped ? View.GONE : View.VISIBLE }"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</FrameLayout>
</layout>
LottieAnimationView устанавливается видимым, когда привязывается элемент.
Весь проект находится на GitHub:
Кто-нибудь знает, как автоматически запускаться при установке LottieAnimationView видно?