我有一个TabManager,它可以触发片段之间的转换,并完成很好的滑动动画。
如果我在更改到下一个选项卡之前等待每个转换的动画完成,这很有效。但是,如果我决定快速切换标签,那么动画似乎相互冲突,我的片段最终会以错误的方向动画。
有没有办法取消在开始新动作时可能仍会在之前的转场上运行的动画?
我的代码如下:
@覆盖 public void onTabChanged(String tabId){
hostActivity.getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); TabInfo newTab = tabs.get(tabId); if (lastTab != newTab) { FragmentTransaction ft = hostActivity.getSupportFragmentManager().beginTransaction(); if (newTab != null) { if (newTab.fragment == null) { newTab.fragment = Fragment.instantiate(hostActivity, newTab.clss.getName(), newTab.args); } } if(lastTab != null && newTab != null) { if(lastTab.index < newTab.index) { ft.setCustomAnimations(R.anim.slide_in_from_right, R.anim.slide_out_to_left); } else { ft.setCustomAnimations(R.anim.slide_in_from_left, R.anim.slide_out_to_right); } } ft.replace(containerID, newTab.fragment); ft.commit();