Android 按下后退按钮完成动画

Android 按下后退按钮完成动画,android,android-fragments,android-animation,Android,Android Fragments,Android Animation,我正在通过以下链接处理片段转换动画: 但我想通过按“后退”按钮开始向下滑动动画,而不是通过按“动作栏”按钮完成向上滑动动画 Slide_down.xml 请帮助我增加有关这方面的知识。尝试在内部执行此操作: public void onBackPressed(){ // do something here and don't write super.onBackPressed() } 处理程序可以用作轻量级计时器。关键是一旦活动开始执行结束,动画就会被清除,因此您必须延迟完成,才能

我正在通过以下链接处理片段转换动画:

但我想通过按“后退”按钮开始向下滑动动画,而不是通过按“动作栏”按钮完成向上滑动动画

Slide_down.xml


请帮助我增加有关这方面的知识。

尝试在内部执行此操作:

public void onBackPressed(){
     // do something here and don't write super.onBackPressed()
}

处理程序可以用作轻量级计时器。关键是一旦活动开始执行结束,动画就会被清除,因此您必须延迟完成,才能完全看到动画

  new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            MainActivity.super.onBackPressed();
        }
    }, getResources().getInteger(android.R.integer.config_mediumAnimTime));

我做了,但它在幻灯片动画中卡住了。你能帮我解决pbm的代码吗。Thanx@Sandeep帕蒂达尔:你好,我在网上看到了你的评论。只是想问一下,这也是解决我问题的办法吗?试试Handler。postDelayed@Neil:据我所知,Handler.postDeleayed用于将任务排队。我说得对吗?我不想延迟,我想在按下后退按钮时设置向下滑动的动画。我猜错了。请帮助我更好地理解代码。谢谢。但对于这一点,应该有代码上下压哪个幻灯片的动画时,它的幻灯片在屏幕上?那会是什么?OverridingPending?overridePendingTransition是用于活动的,实际上片段转换只是普通视图动画。那么我应该添加这个,我想是为了实现我想要的吗?public void onBackPressed{overridePendingTransitionR.anim.slide_down,R.anim.slide_down;}
 Fragment f = getFragmentManager().findFragmentByTag(LIST_FRAGMENT_TAG);



        if (f != null) {
            getFragmentManager().popBackStack();
        } else {
            getFragmentManager().beginTransaction()
                    .setCustomAnimations(R.anim.slide_up,
                            R.anim.slide_down,
                            R.anim.slide_up,
                            R.anim.slide_down)
            .add(R.id.list_fragment_container, SlidingListFragment
                            .instantiate(this, SlidingListFragment.class.getName()),
                    LIST_FRAGMENT_TAG
            )
               .addToBackStack(null) .commit();

            googleMap.getUiSettings().setAllGesturesEnabled(false);
            }


        }
public void onBackPressed(){
     // do something here and don't write super.onBackPressed()
}
  new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            MainActivity.super.onBackPressed();
        }
    }, getResources().getInteger(android.R.integer.config_mediumAnimTime));