隐藏视图直到动画完成 android

hiding view till animation done android

嘿,我在右侧导航菜单中有一组 textView,当菜单打开时,我想要动画 textview 从右到左,为此我有两个动画,第一个是包含平移动画和 alpha 动画的动画集。
首先,在第一个动画之后,我遇到一个问题,即 textview 在动画开始之前出现在它的位置,我通过将 FillBefore=false 添加到动画集​​中的动画并将 textview 可见性设置为来修复它动画开始前不可见 一切正常。

然后我想在第一个动画集完成后添加另一个动画,当我添加这个动画时,问题又来了,我无法解决,我删除了第二个动画它再次工作

这是我的动画集

 <set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="500"
        android:fillEnabled="false"
        android:fillBefore="false"
        android:fillAfter="true"
        android:fromXDelta="150%"
        android:toXDelta="0" />
    <alpha
        android:duration="500"
        android:fillEnabled="true"
        android:fillBefore="false"
        android:fillAfter="true"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

动画集的动画监听器是

       main_set = (AnimationSet) AnimationUtils.loadAnimation(getActivity(), R.anim.main_menu);
    main_set.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {
           // main_dashboard_txt.setVisibility(View.VISIBLE);
        }

        @Override
        public void onAnimationEnd(Animation animation) {
            main_dashboard_txt.setVisibility(View.INVISIBLE);
            main_dashboard_txt.startAnimation(allanim);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });

所有的动画都是

   final TranslateAnimation allanim = new TranslateAnimation(0, pxFromDp(getActivity(), 21), 0, 0);
    allanim.setDuration(100);
    allanim.setFillAfter(true);
    allanim.setFillBefore(false);
    allanim.setFillEnabled(true);
    allanim.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
           // main_dashboard_txt.setVisibility(View.INVISIBLE);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });

我已经多次更改 fill before 和 fill after 的值,但它们似乎不适用于第二个动画

另外:我第一次打开 activity 它工作正常,但是当我关闭抽屉然后重新打开它时,问题发生了 谢谢

我通过设置 Fillafter = falseFillBefore=true 以及 onAnimationEnd 解决了我的问题 我再次将视图设置为可见
问题是如果 Fill after equal true 即使我将其可见性设置为 invisible

将 View 隐藏在另一个 Thread 或 Runnable 中,使其在动画期间不可见