Android共享元素動畫效果顯示問題解決
bug描述
設(shè)計同學(xué)想搞一個點擊圖片item,item內(nèi)的圖片移動到新頁面的圖片位置的效果,一想就是共享元素就能搞定啊。
companion object {
fun gotoDetail(
context: Activity,
dynamicId: String?,
jumpComment: Boolean = false,
shareElement: Boolean = false,
imageView: ImageView? = null,
nameView: TextView? = null,
avatarView: ImageView? = null,
) {
LogUtils.w(shareElement)
if (shareElement) {
val intent = Intent(context, HomeDynamicDetailAcitvity::class.java)
intent.putExtra("dynamicId", dynamicId ?: "")
intent.putExtra("jumpComment", jumpComment)
intent.putExtra("shareElement", shareElement)
val options = ActivityOptions
.makeSceneTransitionAnimation(
context,
UtilPair.create(imageView, context.getString(R.string.dynamic_start_top_image)),
UtilPair.create(avatarView, context.getString(R.string.dynamic_start_avatar)),
UtilPair.create(nameView, context.getString(R.string.dynamic_start_name))
)
// val options = ActivityOptions.makeSceneTransitionAnimation(context, imageView, context.getString(R.string.dynamic_start_top_image))
// start the new activity
ActivityCompat.startActivity(context, intent, options.toBundle())
} else {
val params = HashMap<String, Any>()
params["dynamicId"] = dynamicId ?: ""
params["jumpComment"] = jumpComment
context.toActivity(RoutePath.HOME_DYNAMIC_DETAIL, params)
}
}
}結(jié)果按照文檔寫了一下,但是效果卻有問題。通過把動畫時長放到5x的情況下,發(fā)現(xiàn)不是正常的平移動畫,而是先顯示一個小的圖片然后再漸漸隱藏,然后新界面的大圖片再漸漸顯示,動畫效果明顯不對啊。

官方文檔
要在具有一個共享元素的兩個 Activity 之間添加屏幕過渡動畫,請執(zhí)行以下操作:
\
- 在主題背景中啟用窗口內(nèi)容過渡。
- 在樣式中指定共享元素過渡。
- 將過渡定義為 XML 資源。
- 使用 android:transitionName 屬性為兩個布局中的共享元素指定一個通用名稱。
- 使用 ActivityOptions.makeSceneTransitionAnimation() 函數(shù)。
解決流程
百度了一下看看有沒有人遇到類似的問題,但是并沒有。也對應(yīng)修改了一下style主題什么的,也沒有什么作用。最后想了想,又新建了一個項目,寫個demo測試了一下,上面的自己寫的代碼并沒有上面問題,既然沒有問題,那就是項目代碼里面有問題了,和demo最大的區(qū)別就是項目里有網(wǎng)絡(luò)請求,以及圖片加載的操作。確定了不確定的地方那就試試看。
supportPostponeEnterTransition()
supportStartPostponedEnterTransition()
一個暫停的方法,一個開始動畫的方法,一進(jìn)入就暫停動畫,網(wǎng)絡(luò)請求或者圖片加載結(jié)束后開始動畫,搞定問題。最后看效果。

ok解決收工
總結(jié)
到此這篇關(guān)于Android共享元素動畫效果顯示問題解決的文章就介紹到這了,更多相關(guān)Android共享元素動畫顯示內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android菜單的定義及ActionBar的實現(xiàn)
本篇文章主要介紹了Android菜單的定義及ActionBar的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08
Android利用POI實現(xiàn)將圖片插入到Excel
這篇文章主要為大家詳細(xì)介紹了Android如何利用POI實現(xiàn)將圖片插入到Excel,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
Android應(yīng)用第一次安裝成功點擊“打開”后Home鍵切出應(yīng)用后再點擊桌面圖標(biāo)返回導(dǎo)致應(yīng)用重啟問題的解決方法
這篇文章主要介紹了Android應(yīng)用第一次安裝成功點擊“打開”后Home鍵切出應(yīng)用后再點擊桌面圖標(biāo)返回導(dǎo)致應(yīng)用重啟問題的解決方法,需要的朋友可以參考下2016-11-11
Android PraiseTextView實現(xiàn)朋友圈點贊功能
這篇文章主要為大家詳細(xì)介紹了PraiseTextView簡單實現(xiàn)朋友圈點贊功能的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01
android?微信搶紅包工具AccessibilityService實現(xiàn)詳解
這篇文章主要為大家介紹了android?微信搶紅包工具AccessibilityService實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Kotlin封裝RecyclerView Adapter實例教程
這篇文章主要給大家介紹了關(guān)于Kotlin封裝RecyclerView Adapter的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08

