我正在嘗試將共享元素轉換添加到我的應用程序中。共享元素轉換:嵌入到另一個活動中的片段中的活動
情景是用戶點擊圖像縮略圖而不是用全屏圖像查看打開另一個活動。
如果共享視圖直接託管在目標活動的佈局中,這可以正常工作。適合進入/退出動畫。 但是,當我試圖實現類似片段這是嵌套在目標活動內的類似效果此方法不起作用。有趣的是,沒有顯示輸入動畫,但退出動畫工作正常。
另一個更復雜的視圖層次結構是,如果目標視圖(ImageView)託管在目標活動框架佈局中的視圖分頁器中。
有人有同樣的問題嗎?
編輯: 我點擊收聽代碼
public class OnClickPicture extends OnClickBase {
private ObjectPicture object;
public OnClickPicture(Activity_Parent activity, ObjectPicture object) {
super(activity);
this.object = object;
}
public void onClick(View v) {
picasso.load(object.getFullUrl()).fetch();
Intent intent = new Intent(activity, ActivityPicture.class);
intent.putExtra("picture_object", helper.gson.toJson(object));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && v != null) {
Pair<View, String> p1 = Pair.create(v, "image");
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, p1);
activity.startActivity(intent, options.toBundle());
} else {
activity.startActivity(intent);
}
}
}
您也可以在不添加OnPreDrawObserver的情況下實現此目的。只需重寫片段中的onViewCreated並在其中調用startPostponedEnterTransition() – Daveloper87
完美且乾淨的解釋。謝謝 – GvSharma