У меня есть вид карты, и я анимирую ее по нажатию кнопки. Когда она анимируется впервые, у карты есть тень и высота, но когда я снова оживляю, тени и высоты нет. Я пробовал несколько вещей. Ничего не получалось. Я не могу получить причину для того же. Может кто-нибудь помочь здесь?
Вот код:
fun setUpAnimation(animation: Animation) {
animation.duration = ANIMATION_TIME_MILLIS
animation.interpolator = LinearInterpolator()
animation.fillAfter = true
animation.repeatCount = 0 }
fun startSavingsAnimation() {
val height = findViewById<View>(R.id.card_view_layout).height
val slideUpAnim: Animation = TranslateAnimation(0f, 0f, height * -1f, (height + 200) * -1f )
val slideDownAnim: Animation = TranslateAnimation(0f, 0f, (height + 200) * -1f , (height - 100) * -1f)
setUpAnimation(slideDownAnim)
setUpAnimation(slideUpAnim)
slideDownAnim.startOffset = TIME_TO_SHOW_CARD
savingsView.visibility = View.VISIBLE
slideUpAnim.setAnimationListener(object: Animation.AnimationListener {
override fun onAnimationRepeat(animation: Animation?) {
}
override fun onAnimationEnd(animation: Animation?) {
lottieImage.playAnimation()
savingsView.startAnimation(slideDownAnim)
}
override fun onAnimationStart(animation: Animation?) {
}
})
slideDownAnim.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationRepeat(animation: Animation?) {
}
override fun onAnimationEnd(animation: Animation?) {
savingsView.visibility = View.INVISIBLE
}
override fun onAnimationStart(animation: Animation?) {
}
})
savingsView.clearAnimation()
savingsView.startAnimation(slideUpAnim)}
Xml код:
<FrameLayout
android:id="@+id/savings_layout"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:visibility="gone"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content">
<androidx.cardview.widget.CardView
android:layout_width="wrap_content"
android:layout_gravity="center"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="4dp"
android:layout_marginTop="50dp"
app:contentPadding="8dp"
tools:alpha="1"
app:cardElevation="@dimen/grid_2"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="100dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:layout_gravity="center"
android:textColor="#808080"
android:lineSpacingExtra="6sp"
android:gravity="center_horizontal"
android:text="@{vm.savingsAnimationTitle}"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:layout_marginTop="8dp"
android:layout_marginLeft="@dimen/grid_4"
android:layout_marginRight="@dimen/grid_4"
android:textColor="#161616"
android:lineSpacingExtra="4sp"
android:layout_gravity="center"
android:gravity="center_horizontal"
android:text="@{vm.discountAmount}"
/>
<View
android:id="@+id/dotted_line"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginLeft="3dp"
android:layout_marginTop="@dimen/default_gap"
android:background="@drawable/bg_payment_gray_dotted_line"
android:layerType="software"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:layout_gravity="center"
android:textColor="#808080"
android:lineSpacingExtra="6sp"
android:gravity="center_horizontal"
android:layout_marginTop="8dp"
android:text="@string/p2m_savings_footer_txt"
/>
</LinearLayout>
</androidx.cardview.widget.CardView>
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/savings_lottie_view"
android:layout_width="500dp"
android:layout_height="200dp"
android:layout_gravity="center_horizontal|top"
android:layout_marginLeft="16dp"
app:lottie_autoPlay="false"
app:lottie_loop="false"
app:lottie_rawRes="@raw/savings_lottie" />
</FrameLayout>