【发布时间】:2021-02-28 19:03:46
【问题描述】:
我想让位于窗口底部的CardView 在您切换模式时向下滑动,并在您返回正常模式时向上滑动。问题是虽然动画效果很好,但卡片会在动画结束后立即重新出现在它所在的位置。如何让它保持/冻结,直到我想让它回来?
这是我隐藏卡片的动画代码(card_hide_ani.xml):
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="@android:anim/decelerate_interpolator">
<translate
android:fromYDelta="0%"
android:toYDelta="100%"
android:duration="500" />
</set>
...以及在MainActivity.java 中隐藏卡片的方法(通过点击按钮调用)
void HideCard(Context context) {
CardView cardView = findViewById(R.id.cardView);
Animation cardAni = AnimationUtils.loadAnimation(context, R.anim.card_hide_ani);
cardView.startAnimation(cardAni);
}
(我还想为卡片的透明度/alpha 设置动画,虽然我不完全确定这是否适用于卡片及其嵌入式组件。我稍后会处理,但是现在我只想让它工作。)
就像我说的,动画部分工作正常,但卡片“弹回”到原来的位置。我找不到任何可以说明原因的东西,到目前为止,这一直令人沮丧。我假设我应该以其他方式完成它,但我无法弄清楚该做什么或如何去做。我在这里错过了什么吗?任何帮助将不胜感激。谢谢!
【问题讨论】:
-
所以你想在动画完成后隐藏包含 TextView 和 FAB child 的整个 CardView?
-
是的,整个 CardView。如果有意义的话,我希望它留在动画结束的任何地方。
-
在你的函数 hideCard() 中,一旦你的动画完成,只需使用可见性修饰符隐藏 CardView。并且每当您想再次显示卡片时,请将动画和可见性设置为 VISIBLE。
-
其他的呢?当点击它并且下一个窗口正在加载时,该 FAB 应该缩小以显示其后面的进度条。它不会一直缩小。如何防止它调整大小?
-
恐怕我没有完全理解你。但我找到了解决您问题的类似解决方案。检查这个答案:stackoverflow.com/a/12329682/7725103
标签: java android android-studio android-animation