我想为 setVisibility 上的视图设置动画,但它仅第一次工作

Posted

技术标签:

【中文标题】我想为 setVisibility 上的视图设置动画,但它仅第一次工作【英文标题】:I want to animate view on setVisibility but it works only for the first time 【发布时间】:2017-05-19 22:31:54 【问题描述】:

我已经添加了

android:animateLayoutChanges="true"     

我的回收站视图和可见性在onClick 中处理如下,但它仅在第一次点击时有效。

rlOtherOptions.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(final View view) 
            if (rvModeCheck.getVisibility() == View.GONE) 
                rvModeCheck.setVisibility(View.VISIBLE);

             else 
                rvModeCheck.setVisibility(View.GONE);
            
        
    );    

我该怎么办?

【问题讨论】:

你在找哪个动画?像 Alpha 一样,旋转,.. 你在看哪个动画 发布完整的活动代码 我想动画父布局下方缓慢扩展并出现recyclerView。在相对布局中添加了回收站视图。谢谢。 【参考方案1】:

android:animateLayoutChanges="true"

请在您的 XML 的根布局中添加上述内容...

【讨论】:

【参考方案2】:

尝试通过代码制作动画

rlOtherOptions.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(final View view) 
            if (rvModeCheck.getVisibility() == View.GONE) 
                rvModeCheck.setVisibility(View.VISIBLE);
                rvModeCheck.setAlpha(0);
                rvModeCheck.animate().alpha(1).setDuration(300).setListener(null);

             else 
                rvModeCheck.animate().alpha(0).setDuration(300).setListener(new Animator.AnimatorListener() 
                    @Override
                    public void onAnimationStart(Animator animation) 

                    

                    @Override
                    public void onAnimationEnd(Animator animation) 
                        rvModeCheck.setVisibility(View.GONE);
                    

                    @Override
                    public void onAnimationCancel(Animator animation) 

                    

                    @Override
                    public void onAnimationRepeat(Animator animation) 

                    
                );
            
        
    );

【讨论】:

【参考方案3】:

如果尚未将此代码放在 onCreateView 方法中,请尝试。

可能需要在您的问题中添加更多信息/代码以获得更好的帮助。

【讨论】:

以上是关于我想为 setVisibility 上的视图设置动画,但它仅第一次工作的主要内容,如果未能解决你的问题,请参考以下文章

为视图设置动画后 setVisibility 不起作用

我想在setVisibility上制作动画视图,但它仅适用于第一次

setVisibility(View.Gone) 工作,但视图仍然拥有空间

RecyclerView ambiguos setVisibility函数,点击一个视图影响多个视图

如何在导航栏上为单个视图上的不同按钮设置标题?

View.setVisibility 中的 java.util.ConcurrentModificationException