调用这些方法的主要区别是什么:
fragmentTransaction.addToBackStack(name);
fragmentTransaction.replace(containerViewId, fragment, tag);
fragmentTransaction.add(containerViewId, fragment, tag);
Run Code Online (Sandbox Code Playgroud)
替换已存在的片段,将片段添加到活动状态,并向后台堆栈添加活动是什么意思?
其次,有findFragmentByTag(),这是否搜索由add()/ replace()方法或addToBackStack()方法添加的标记?
我认为当使用以下代码使用片段时按下后退按钮时,系统会反转backstack上的动画:
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out);
ft.replace(R.id.viewContainer, new class(), "layout").addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用自定义动画来处理我的片段.
我已经按照在线教程,但我得到了以下错误:
java.lang.RuntimeException:未知的动画师名称:translate
动画的XML如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="100%"
android:toXDelta="0"
android:duration="300" />
</set>
Run Code Online (Sandbox Code Playgroud)
Java文件如下所示:
public void goCategory(View v) {
FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(R.animator.anim_in_left, R.animator.anim_out_left);
ft.show(fragment);
ft.commit();
}
Run Code Online (Sandbox Code Playgroud)
我无法理解其他线程中的解决方案.如果有人能为我愚蠢,我真的很感激.
我有一个片段来替换另一个片段.我想指定动画.但动画被忽略了.
transaction.replace(R.id.my_fragment, newFrag);
transaction.addToBackStack(null);
transaction.setCustomAnimations(R.anim.slide_in_up, R.anim.slide_out_up);
Run Code Online (Sandbox Code Playgroud)
slide_in_up
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="100%p" />
Run Code Online (Sandbox Code Playgroud)
slide_out_up
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="100%p"
android:toYDelta="0%p" />
Run Code Online (Sandbox Code Playgroud)
我真正想要实现的是让新片段从底部滑入.我的动画被忽略了.什么是缺少的代码?