gpt4 book ai didi

android - 如何在此代码上为 FragmentTransaction 设置自定义动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:21 26 4
gpt4 key购买 nike

我有 5 个 fragment ,我使用以下代码为 FragmentTransaction 设置自定义动画:

FragmentTransaction trans = getFragmentManager().beginTransaction();
trans.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);

但是如何为此设置 CustomAnimations:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ) {
if (getSupportFragmentManager().getBackStackEntryCount() == 0)
{
this.finish();
return false;
}
else
{
getSupportFragmentManager().popBackStack();
return false;
}



}

return super.onKeyDown(keyCode, event);
}

最佳答案

还有第二个setCustomAnimations方法 ( here's the support library method ),它有两个额外的 ID,用于包含弹出返回堆栈时要使用的动画。将你希望在最后弹出返回堆栈(事务被反转)时发生的动画 ID 传递给 spots。

FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setCustomAnimations(android.R.anim.slide_in_left,
android.R.anim.slide_out_right,
ANIMATION_ID_FOR_ENTERING_VIEW,
ANIMATION_ID_FOR_EXITING_VIEW);

然后当你调用

getFragmentManager().popBackStack();

动画将播放,传递给该方法的第三个动画将为您最初删除的 View 播放,第四个将为可见但正在删除的 View 播放。从您当前用于初始交易的动画来看,我猜您想使用 android.R.anim.slide_in_rightandroid.R.anim.slide_out_left 作为后背堆栈动画(见下文):

transaction.setCustomAnimations(android.R.anim.slide_in_left,
android.R.anim.slide_out_right,
android.R.anim.slide_in_right,
android.R.anim.slide_out_left);

您只需在最初将 fragment 添加到堆栈时调用 setCustomAnimations(就像您现在所做的,只需添加额外的动画 ID),返回堆栈将记住您设置的动画并在您弹出时自动播放它们回来。

注意:此方法仅在 API 13 及更高版本中可用,除非您使用支持 v4 jar,它看起来像您(因为您使用的是 getSupportFragmentManager() 而不是常规方法)。

关于android - 如何在此代码上为 FragmentTransaction 设置自定义动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25013689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com