From 0893940c2b69778f2e2da81579c4b471e1d77363 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 3 Mar 2022 12:49:06 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/features/shop/ui/ShopFragment.kt | 31 ++++++++++++------- app/src/main/res/layout/fragment_shop.xml | 6 ++-- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt b/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt index 96e2c8619c..51fe6cb54c 100644 --- a/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt @@ -10,6 +10,7 @@ import android.view.inputmethod.EditorInfo import android.view.inputmethod.InputMethodManager import androidx.activity.OnBackPressedCallback import by.kirich1409.viewbindingdelegate.viewBinding +import com.tangem.tap.common.GlobalLayoutStateHandler import com.tangem.tap.common.KeyboardObserver import com.tangem.tap.common.extensions.show import com.tangem.tap.common.redux.navigation.NavigationAction @@ -71,17 +72,25 @@ class ShopFragment : BaseStoreFragment(R.layout.fragment_shop), StoreSubscriber< } } + private var cardTranslationY = 70f private fun setupCardsImages() { - binding.imvSecond.animate() - .translationY(70f) - .scaleX(0.9f) - .scaleY(0.9f) - .start() - binding.imvThird.animate() - .translationY(140f) - .scaleX(0.8f) - .scaleY(0.8f) - .start() + GlobalLayoutStateHandler(binding.imvSecond).apply { + onStateChanged = { + cardTranslationY = it.height * 0.15f + binding.imvSecond.animate() + .translationY(cardTranslationY) + .scaleX(0.9f) + .scaleY(0.9f) + .start() + binding.imvThird.animate() + .translationY(cardTranslationY * 2) + .scaleX(0.8f) + .scaleY(0.8f) + .start() + detach() + } + } + } private fun setupProductSelection() = with(binding) { @@ -130,7 +139,7 @@ class ShopFragment : BaseStoreFragment(R.layout.fragment_shop), StoreSubscriber< } private fun showOrHideThirdCardWithAnimation(show: Boolean) = with(binding) { - val translationY = if (show) 140f else 0f + val translationY = if (show) cardTranslationY * 2 else cardTranslationY if (show) imvThird.show() imvThird.animate() .translationY(translationY) diff --git a/app/src/main/res/layout/fragment_shop.xml b/app/src/main/res/layout/fragment_shop.xml index dbeba6afe6..26cd36c1d7 100644 --- a/app/src/main/res/layout/fragment_shop.xml +++ b/app/src/main/res/layout/fragment_shop.xml @@ -53,10 +53,12 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginStart="36dp" - android:paddingTop="16dp" - android:paddingBottom="44dp" android:layout_marginEnd="36dp" android:layout_weight="1" + android:clipChildren="false" + android:clipToPadding="false" + android:paddingTop="16dp" + android:paddingBottom="44dp" app:layout_constraintBottom_toTopOf="@+id/tv_header" app:layout_constraintTop_toTopOf="parent">