Gol*_*k84 29 android android-animation android-fragments
在我的活动中,只需按一下按钮,我就会使用自定义动画将新片段替换为当前片段,如本例所示.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_anomalie:
Fragment contentFragment = getFragmentManager().findFragmentById(R.id.content);
if(contentFragment instanceof AnomalieListFragment)
{
getFragmentManager().popBackStack();
return true;
}
else
{
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
anomalieFragment = new AnomalieListFragment();
ft.replace(R.id.content, anomalieFragment);
ft.addToBackStack(null);
ft.commit();
}
...
Run Code Online (Sandbox Code Playgroud)
但是,弹回堆栈不会显示任何动画.有没有办法像使用setCustomAnimations方法一样在FragmentTransaction中指定自定义动画?
Gol*_*k84 93
在进一步阅读文档后,我发现使用此签名setCustomAnimation允许在按下后退按钮或调用时播放动画getFragmentManager().popBackStack();
我像这样修改了我的代码
...
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out, android.R.animator.fade_in, android.R.animator.fade_out);
anomalieFragment = new AnomalieListFragment();
ft.replace(R.id.content, anomalieFragment);
ft.addToBackStack(null);
ft.commit();
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12206 次 |
| 最近记录: |