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

问题描述 投票:0回答:3

我已经添加

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);
            }
        }
    });    

我该怎么办?

android animation visibility
3个回答
3
投票

android:animateLayoutChanges="true"

请将上面的内容添加到XML的根布局中...


1
投票

请尝试通过代码进行动画制作

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) {

                    }
                });
            }
        }
    });

0
投票

尝试将此代码放在onCreateView方法中(如果尚未安装)。

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

© www.soinside.com 2019 - 2024. All rights reserved.