使用此应用程序,我正试图在LinearLayout上管理显示/隐藏动画。
我遇到的问题是,在切换可见性时,它似乎第二次隐藏了任何孩子......
为了让我的故事更加清晰,请点击这里:
Layoutfile:
<TextView
android:id="@+id/tv_lecture"
style="@style/Text.Primary.Light"
android:singleLine="true" />
<LinearLayout
android:visibility="gone"
android:id="@+id/grades_container"
style="@style/Container.Vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="10"/>
</LinearLayout>
代码:
private void animate(final LinearLayout gradesContainer) {
if (gradesContainer.getVisibility() == View.GONE) {
gradesContainer.animate()
.translationY(gradesContainer.getHeight())
.alpha(1.0f)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
gradesContainer.setVisibility(View.VISIBLE);
gradesContainer.setAlpha(0.0f);
}
});
}
else {
gradesContainer.animate()
.translationY(0)
.alpha(0.0f)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
gradesContainer.setVisibility(View.GONE);
}
});
}
}
讲座TextView单击将触发方法:animate()
那么这个问题到底是什么?无法弄清楚这就是为什么我会问你们。谢谢!
答案 0 :(得分:1)
如果您的目标只是简单的动画。您可以继续前进并在xml中使用animateLayoutChanges
。
干杯! :)