Высота CardView и границы удаляются после анимации CardView - PullRequest
0 голосов
/ 24 марта 2020

У меня есть вид карты, и я анимирую ее по нажатию кнопки. Когда она анимируется впервые, у карты есть тень и высота, но когда я снова оживляю, тени и высоты нет. Я пробовал несколько вещей. Ничего не получалось. Я не могу получить причину для того же. Может кто-нибудь помочь здесь?

Вот код:

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>
...