一個(gè)關(guān)于kotlin使用5.0轉(zhuǎn)場(chǎng)動(dòng)畫的問(wèn)題

最近使用kotlin開(kāi)發(fā)遇到了個(gè)問(wèn)題,就是使用轉(zhuǎn)場(chǎng)動(dòng)畫的時(shí)候出現(xiàn)了個(gè)有趣的情況

這是啟動(dòng)轉(zhuǎn)場(chǎng)動(dòng)畫代碼

startActivity(slideByCodeIntent, ActivityOptionsCompat.makeSceneTransitionAnimation(this@ShopCategoryListActivity,null).toBundle())

使用這段代碼跳轉(zhuǎn)在java環(huán)境是完全沒(méi)有問(wèn)題的,但是在kotlin是不可行的會(huì)報(bào)以下錯(cuò)誤

java.lang.NullPointerException: Attempt to read from field 'java.lang.Object android.support.v4.util.Pair.first' on a null object reference

一開(kāi)始百思不得其解啊,然后考慮了一下是不是參數(shù)問(wèn)題然后我們打斷點(diǎn)看看

image.png

沒(méi)錯(cuò),sharedElements[0]不為空,這是什么情況!

我們繼續(xù)跟進(jìn)

image.png

length長(zhǎng)度=1,也就是說(shuō)我們?cè)趕tartActivity傳進(jìn)來(lái)的null,在這里kotlin幫我們處理變成了一個(gè)pair了

image.png

pair[0] =null,到這里我們就清楚了,啟動(dòng)轉(zhuǎn)場(chǎng)代碼改成這樣就可以,去掉null,則可以正常運(yùn)行

startActivity(slideByCodeIntent, ActivityOptionsCompat.makeSceneTransitionAnimation(this@ShopCategoryListActivity).toBundle())

有大神能告訴這個(gè)原因就好了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容