【问题标题】: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();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-20
        • 2018-07-10
        • 2014-07-23
        • 2020-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-05
        相关资源
        最近更新 更多