使用带有edittext的共享元素转换

时间:2016-08-23 08:17:01

标签: android shared-element-transition

我试图使用共享元素转换

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
       edit_activity.setTransitionName(getString(R.string.activity_text_trans));
       edit_wbs.setTransitionName(getString(R.string.activity_mixed_trans));
       Pair<View, String> pair1 = Pair.create(edit_activity, edit_activity.getTransitionName());
       Pair<View, String> pair2 = Pair.create(edit_contractor, edit_contractor.getTransitionName());
       Pair<View, String> pair3 = Pair.create(edit_labour_used, edit_labour_used.getTransitionName());
       ActivityOptionsCompat options = ActivityOptionsCompat.
                                            makeSceneTransitionAnimation(this, pair1, pair2, pair3);
        startActivity(intent, options.toBundle());
    }

但我得到以下错误

  

错误:(469,75)错误:不兼容的类型:对   无法转换为配对

我尝试将edittext更改为View。 如果我改变了类型,我无法使用edittext的setText和getText属性。

我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

尝试成对一个静态转换名称,如下所示:

Intent intent = new Intent(context, DetailsActivity.class);
intent.putExtra(DetailsActivity.EXTRA_CONTACT, contact);
Pair<View, String> p1 = Pair.create((View)ivProfile, "profile");
Pair<View, String> p2 = Pair.create(vPalette, "palette");
Pair<View, String> p3 = Pair.create((View)tvName, "text");
ActivityOptionsCompat options = ActivityOptionsCompat.
    makeSceneTransitionAnimation(this, p1, p2, p3);
startActivity(intent, options.toBundle());