我正在尝试在不同活动的片段之间实现共享元素转换,我已经实现了共享元素进入转换,但无法管理回退转换。
片段 A 托管在 Activity A 中,单击按钮时,图像被添加为共享元素,然后启动 Activity B,其中托管包含共享元素的目标视图的 Fragment B。
活动一:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
getSupportFragmentManager()
.beginTransaction()
.addToBackStack(null)
.replace(R.id.content, FragmentA.newInstance())
.commit();
}
@Override
public void onBackPressed() {
super.onBackPressed();
finishAfterTransition();
}
Run Code Online (Sandbox Code Playgroud)
片段A:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
postponeEnterTransition();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
setSharedElementEnterTransition(TransitionInflater.from(getContext()).inflateTransition(android.R.transition.move));
setSharedElementReturnTransition(TransitionInflater.from(getContext()).inflateTransition(android.R.transition.move));
}
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
final ImageView imageView = (ImageView) view.findViewById(R.id.simple_activity_a_imageView);
Button button = (Button) view.findViewById(R.id.simple_activity_a_btn);
button.setOnClickListener(new View.OnClickListener() {
@Override …
Run Code Online (Sandbox Code Playgroud) animation android android-fragments material-design shared-element-transition