android - 如何制作正确的进/出动画?

标签 android android-animation

onViewCreate 中,我设置屏幕后面的 View :

holderMenus.post(new Runnable() {
      @Override public void run() {
        if (holderMenus != null) {
          if (DeviceType.INSTANCE.tablet) {
            holderMenus.animate().translationY(-holderMenus.getHeight());
          } else {
            holderMenus.animate().translationY(holderMenus.getHeight());
          }
        }
      }
    });

然后,当我想移动 View 时:

  holderMenus.animate().translationY(0).setDuration(300);

效果不错; View 滑入。接下来我想将 View 移出屏幕:

 if (DeviceType.INSTANCE.tablet) {
     holderMenus.animate().translationY(-holderMenus.getHeight()).setDuration(300);
 } else {
     holderMenus.animate().translationY(holderMenus.getHeight()).setDuration(300);
 }

但是 View 没有滑动,而是消失了,就好像我将属性设置为 .setVisibility(View.GONE);

我怎样才能让它滑动呢?

最佳答案

我制作了一个自定义操作按钮,当滚动 ListView 时,它会从屏幕下方滑动并滑回屏幕下方。

隐藏:

        TranslateAnimation anim = new TranslateAnimation(0, 0, 0, 500);
        anim.setDuration(300l);
        anim.setFillAfter(true);
        layout.startAnimation(anim); //layout is the layout with the button

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                layout.clearAnimation();
                layout.setVisibility(View.GONE);
            }
        }, 300l);

显示:

Handler h = new Handler();
            h.postDelayed(new Runnable() {
                @Override
                public void run() {
                    try {
                        layout.setVisibility(View.VISIBLE);
                        TranslateAnimation anim = new TranslateAnimation(0, 0, 500, 0);
                        anim.setDuration(300l);
                        anim.setFillAfter(true);
                        layout.startAnimation(anim);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }, 500l);

关于android - 如何制作正确的进/出动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40178091/

相关文章:

android - picasso :2个 fragment 之间的共享元素过渡

android - 不需要的 onItemSelected 调用

java - 并行动画 View

android - 如何在 Searchview 中隐藏后退按钮

Android Kotlin Espresso 在单元测试中断言预期 Activity 会引发错误

Android ImageView翻转动画

android - 动画添加到 Nexus4 与其他设备上的 Activity 的新 TextView 的问题

android - 从底部滑动 View 到另一个布局

Android Notification.Builder 与 NotificationCompat.Builder

java - 如何让Activity继承方法