这有点难以用文字和片段来解释。所以我准备了一个简单的项目来重现这个问题。
下载(文件 -> 下载)
在初始运行时,您会看到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
,而不是对整个片段有效。