相关疑难解决方法(0)

共享元素转换与FragmentTransaction.replace()一起使用但不适用于FragmentTransaction.add()

新的共享元素转换工作时,我使用的片段" 替代 ",但我似乎无法使它发挥片段" 添加 ".我在两种情况下使用相同的容器.

更多细节:

活动 - 布局 - >

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00ffff"
    android:orientation="vertical" >

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

在启动Activity时,我将Fragment1添加到屏幕上

getFragmentManager().beginTransaction().replace(R.id.container,new TransitionTestFragment1(), "TransitionTestFragment1").commit();
Run Code Online (Sandbox Code Playgroud)

在Fragment1布局中的视图的单击事件 - >我将Fragment2添加到屏幕.我在第一个Fragment的onCreateView中设置了监听器

public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
final TransitionSet transitionSet = new TransitionSet();
transitionSet.addTransition(new ChangeImageTransform());
transitionSet.addTransition(new ChangeBounds());
transitionSet.addTransition(new ChangeTransform());
transitionSet.setDuration(300);

View v=inflater.inflate(R.layout.fragment1, null);
final View image=v.findViewById(R.id.image);
image.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        setSharedElementReturnTransition(transitionSet);
        Fragment fragment = new TransitionTestFragment2();
        fragment.setSharedElementEnterTransition(transitionSet);

        FragmentTransaction ft = getFragmentManager().beginTransaction()
                .replace(R.id.container, fragment) …
Run Code Online (Sandbox Code Playgroud)

android android-fragments shared-element-transition fragment-transitions

24
推荐指数
2
解决办法
4091
查看次数