我試圖使共享元素過渡工作與回收器視圖內的元素。當用戶點擊我的回收商查看項目中的文本視圖時,詳細信息活動即會打開。在細節活動內部,我展示了一些信息,並且我也有一個選項卡布局,可以使用picasso從url加載一些圖像。過渡到細節活動正在工作,但如果用戶在加載所有圖像之前返回到主活動,主活動中的回收站視圖將在逆向動畫之後消失!當我禁用共享元素轉換時,問題消失了。與RecyclerView項目共享元素過渡 - Android
這兩項活動都適用於碎片。所以,我試圖在兩個片段之間創建一個轉換,這些片段處於不同的活動中。
在RecyclerViewAdapter,我設定的轉換名:
public void onBindViewHolder(final ViewHolder viewHolder, int position) {
...
viewHolder.profileImage.setTransitionName("profile"+position);
onClickListener我的TextView的(在主要活動的片段內):
Intent i = new Intent(getCurrentActivity(), DetailActivity.class);
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(getCurrentActivity(), (View) profileImage, "profile"+position);
getCurrentActivity().startActivity(i, options.toBundle());
詳細活動的片段具有共享內元素(在onCreateView中):
profileImage.setTransitionName("profile"+position);
我已經檢查了trans當意圖發生時兩個活動中的ition名稱相同。
我被困在這個問題兩天,看不見發生了什麼事情。如果您需要更多信息或代碼,只需詢問。
謝謝!
我不知道,如果該事項,但兩個活動(主要和詳細信息)的片段,這樣的意圖,詳細活動從主要活動的片段和setTransitionName稱爲( )的第二個活動在其片段的onCreateView()內調用。 –
當然你會有這個問題。畢加索是在BackGround上的一個異步調用,如果它沒有完成任務,那麼你移動到另一個Activity,這是你的MainActivity。來自畢加索的異步電話將被暫停。 @G_comp。我不認爲他正在使用碎片,因爲你設置了碎片交易的過渡。 – Aizen
@Aizen,但問題發生在共享元素轉換啓用時,所以我不認爲這是畢加索的錯誤。當我禁用共享元素轉換時,我可以在加載圖像之前返回主活動 –