【发布时间】:2014-11-28 00:43:56
【问题描述】:
我试图在我的活动中显示一个片段,其中包含一个菜单,它应该从屏幕右侧滑入,直到用户再次按下按钮或按下后退按钮将其关闭,然后它应该滑动到它来自的地方,当然,这两个动作都有动画。问题是片段滑入,但我不能让它随着动画滑出,它只是弹出消失。我已经阅读了一些类似的帖子,但没有找到适合我的情况的任何有效解决方案。
这是应该完成工作的代码:
private void showMenuFragment() {
if (this.frMenu == null) {
this.frMenu = new MenuFragment();
FragmentTransaction transaction = this.getSupportFragmentManager()
.beginTransaction();
transaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_right);
transaction.replace(R.id.fr_side_menu, this.frMenu);
transaction.addToBackStack(MenuFragment.class.getName());
transaction.commit();
}
else {
this.frMenu = null;
this.onBackPressed();
}
}
动画:
文件 slide_in_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>
</set>
文件 slide_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
</set>
请帮忙!
提前致谢。
【问题讨论】:
-
如何删除片段?你只是弹出回栈(使用 onBackPressed())吗?
-
是的,没错。
标签: android animation android-fragments android-animation android-support-library