【问题标题】:How to animate an expand/collapse arrow for 180 degree when arrow is clicked?单击箭头时如何为展开/折叠箭头设置 180 度动画?
【发布时间】:2020-11-16 08:58:10
【问题描述】:
我在 linearLayout 在可展开的回收站视图中有一个展开更多图标
我希望当点击 linearLayout 时,布局会展开,并且这个图标会像下图一样随着动画旋转 180 度-
这是我的操作代码:
rotationAngle = rotationAngle == 0 ? 180 : 0;
expandArrow.animate().rotation(rotationAngle).setDuration(500).start();
rotationalAngle=0; 是全局声明的。
你能给我一个合适的解决方案吗?
【问题讨论】:
标签:
android
expandablelistview
collapse
expand
expandablerecyclerview
【解决方案1】:
您可以使用 AnimationListener 在动画完成时设置新的 Drawable:
expandArrow.animate().setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
expandIcon.setImageResource(R.drawable.arrow_up);
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
}).rotation(rotationAngle).setDuration(500).start();
【解决方案2】:
ImageV.animate().rotation(isExpanded()? -180 : 0 )
.setInterpolator(new SineInOut60())
.setDuration(2000)
.withLayer();