这有点难以用文字和片段来解释。所以我准备了一个简单的项目来重现这个问题。
下载(文件 -> 下载)
在初始运行时,您会看到Activity A托管Fragment F,它又托管了一个额外的嵌套片段Fragment F1。当你按下Fragment F Button时,你会看到Fragment F1过渡到Fragment F2动画(我故意让动画变慢,以便稍后看到问题)。
现在按设备上的返回键,您将看到Fragment F2转换回Fragment F1. (感谢addToBackStack)一切正常,现在按Activity A Button。您将看到Fragment F过渡到Fragment X.
现在按返回键时要特别注意。您将看到按预期Fragment X返回的转换。Fragment F但是,似乎现在活动的嵌套片段(或者Fragment F1或Fragment F2,取决于哪个可见)也随着上一次调用中设置的动画进行转换setCustomAnimations!
我的印象setCustomAnimations是只对应用有效FragmentTransaction,而不是对整个片段有效。