小编Spe*_*cer的帖子

在包含共享元素的共享元素的片段上输入转换

setEnterTransition在片段上使用新的Lollipop api ,然后为片段中的图像添加共享元素转换.首先,图像应移动到其位置,然后片段中的其余视图应淡入.

但是,enterTransition正在应用于共享元素,因此它将与其余视图一起淡入.如果我没有设置enterTransition,那么图像会正常移动,但是当它移动时,其他内容已经可见.

如何让它不将enterTransition应用于共享视图?

在AOSP中发现这个提交似乎应该解决这个问题,但它似乎没有起作用.

这是示例代码:

public class Fragment1 extends Fragment {

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                           Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.main_fragment, container, false);
    final ImageView imageView = (ImageView) rootView.findViewById(R.id.image);
    final Button button = (Button) rootView.findViewById(R.id.button);

    button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        TransitionSet transitionSet = new TransitionSet();
        transitionSet.addTransition(new ChangeImageTransform());
        transitionSet.addTransition(new ChangeBounds());
        transitionSet.setDuration(300);

        Fragment fragment2 = new Fragment2();
        fragment2.setSharedElementEnterTransition(transitionSet);
        fragment2.setSharedElementReturnTransition(transitionSet);
        Fade fade = new Fade();
        fade.setStartDelay(300);
        fragment2.setEnterTransition(fade); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-transitions android-5.0-lollipop

20
推荐指数
1
解决办法
9112
查看次数

添加到FragmentTransaction的addSharedElement api如何工作?

Api 21添加了一个api addSharedElement,看起来它应该被用来与活动转换的共享视图类似,请参阅:http://developer.android.com/reference/android/app/FragmentTransaction.html#addSharedElement(android). view.View,java.lang.String))

我尝试通过设置android:transitionName两个片段中的视图然后调用addSharedElement它来使用此API FragmentTransaction.在片段上,我打电话给setSharedElementEnterTransition(new ChangeImageTransform());.

但是,这没有效果.

我是在本月早些时候发布的Lollipop预览版上运行的.

android android-fragments android-5.0-lollipop

6
推荐指数
1
解决办法
2355
查看次数