0

我會盡力解釋我的問題。Android Material Design vs ContentObserver

沿着我在哪裏註冊/取消註冊我的ContentObserver的搜索,我看到多個回答說它應該在onResume/onPause或onStart/onStop,但不在onCreate/onDestroy。 假設我在onStart/onStop中註冊了/ un註冊,爲了確保我的視圖仍然使用新數據更新,我在註冊ContentObserver之前獲取數據,然後在onStart方法中刷新我的視圖。

這一切都很好,直到工作正常... SharedElement與材料設計過渡。

因爲想象一下 活動註冊到Data-A並在onStart刷新數據以便View。 當用戶觸摸一個項目,它運行一個SharedElement動畫此文件的細節:使用數據-A [n]的活動B

問題是,當我回來到活動甲從活動B,在原點項由於我的數據刷新,我的列表不再存在,我的動畫也沒有這種慾望行爲。

你對此有什麼想法嗎?

回答

0

如果原始數據被替換,那麼您不應該使用共享元素轉換本身。相反,您可以拍攝快照並附加到目標活動的疊加層以實現所需的動畫。

看看Shared element callbacks

基本上在共享元素開始你拍快照,將其添加到窗口覆蓋,動畫,然後隱藏它,如果你需要它。所以當你回來的時候,如果你沒有數據,只需再次使用快照來模擬類似的東西,或者完全跳過動畫。

看看following link,它展示了同樣的事情。

+0

謝謝我會採取一看,我想使用ShareElementCallback。爲了更具體的我的數據不會一直在改變,我只需刷新onStart上的視圖以確保不會錯過任何更改。只是一個想法,但動畫完成後刷新視圖怎麼樣? – Igloob

+0

這一切都取決於你的用例。快照的想法是在兩個活動之間沒有共同元素(通過至少看)之間進行動畫。 –