动画后Android视图的可见性

第一码

我有两个简单的动画,fade_in.xmlfade_out.xml我希望单击“登录”按钮时不显示登录表单。我希望请求完成后可以看到它。第一部分按预期工作,但是当请求完成时,动画和登录表单将不可见。

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromAlpha="0.0"
android:toAlpha="1.0" />

这是淡入淡出xml是

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromAlpha="1.0"
android:toAlpha="0.0" />

我的动画方法是

void animateStart() {
    Animation animationFadeOut;
    animationFadeOut = AnimationUtils.loadAnimation(context, R.anim.fade_out);
    animationFadeOut.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            formLayout.setVisibility(View.GONE);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });
    formLayout.startAnimation(animationFadeOut);
}

void animateFinish() {
    Animation animationFadeIn;
    animationFadeIn = AnimationUtils.loadAnimation(context, R.anim.fade_in);
    animationFadeIn.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            formLayout.setVisibility(View.VISIBLE);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });
    formLayout.startAnimation(animationFadeIn);
}

我的表单为xml

<LinearLayout
    android:id="@+id/container_login_form"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:animateLayoutChanges="true"
    android:layout_centerVertical="true"
    android:orientation="horizontal">..</LinearLayout>

和屏幕 登入画面

我该如何解决?

纳普斯特

删除动画侦听器,然后setFillAfter(true)像这样添加到动画中

void animateStart() {
    Animation animationFadeOut;
    animationFadeOut = AnimationUtils.loadAnimation(context, R.anim.fade_out);
    animationFadeOut.setFillAfter(true);
    formLayout.startAnimation(animationFadeOut);
}

void animateFinish() {
    Animation animationFadeIn;
    animationFadeIn = AnimationUtils.loadAnimation(context, R.anim.fade_in);
    animationFadeIn.setFillAfter(true);
    formLayout.startAnimation(animationFadeIn);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章