最近產(chǎn)品有需求耻陕,一開(kāi)始通過(guò)啟動(dòng)頁(yè)進(jìn)入登錄頁(yè)是正常的頁(yè)面跳轉(zhuǎn),而后要進(jìn)入主頁(yè)面刨沦,在主頁(yè)面里面的點(diǎn)擊判斷是否是登錄狀態(tài)诗宣,然后登錄頁(yè)從下向上彈出。這個(gè)需求一開(kāi)始感覺(jué)應(yīng)該不是很麻煩想诅,直接用
overridePendingTransition(R.anim.anim_activity_up, 0)
anim_activity_up的文件為:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="200"
android:fromYDelta="100%p"
android:toYDelta="0%p"
>
</translate>
然后這時(shí)候運(yùn)行的時(shí)候問(wèn)題就來(lái)了召庞,切換的時(shí)候會(huì)有黑的陰影閃現(xiàn)岛心,然后谷歌方案一般都是說(shuō)設(shè)置主題,在里面添加如下代碼:
<item name="android:windowIsTranslucent">true</item>
這個(gè)是改 Activity 的背景為透明篮灼,因?yàn)橐婚_(kāi)始設(shè)置主題的父主題為:
parent="Theme.AppCompat.Light.NoActionBar"
頁(yè)面的狀態(tài)欄也會(huì)變成黑色忘古,跟著頁(yè)面一塊來(lái)從下往上走,效果也不好诅诱。并且設(shè)置這個(gè)透明色以后髓堪,原先的頁(yè)面跳轉(zhuǎn)也會(huì)跟著變化。娘荡。干旁。谷歌了一下是確實(shí)有這個(gè)問(wèn)題,折騰了好久炮沐,最終改變方案争群。
用 popupwindow 來(lái)實(shí)現(xiàn),設(shè)置其彈出跟關(guān)閉的動(dòng)畫大年,動(dòng)畫效果可以達(dá)到產(chǎn)品效果换薄,但是如果popupWindow彈出,這個(gè)時(shí)候按下 home 鍵翔试,然后點(diǎn)擊圖標(biāo)進(jìn)入专控,popupWindow 頁(yè)面的動(dòng)畫效果就會(huì)再展現(xiàn)一遍,個(gè)人感覺(jué)有可能是由下面的設(shè)置造成:
<item name="android:windowEnterAnimation">@anim/menushow</item>
<item name="android:windowExitAnimation">@anim/menuhide</item>
設(shè)置進(jìn)入跟退出的動(dòng)畫遏餐。效果還是不理想。
這個(gè)問(wèn)題被同組的大神也遇到過(guò)赢底,他設(shè)置的頁(yè)面也是點(diǎn)擊從下到上彈出失都,并且說(shuō)設(shè)置overridePendingTransition后面的參數(shù)為0的時(shí)候沒(méi)有效果,必須自己去寫來(lái)實(shí)現(xiàn)這個(gè)效果幸冻,最終代碼如下:
overridePendingTransition(R.anim.anim_activity_up,R.anim.anim_activity_stay)
anim_activity_stay的文件為:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="200"
android:fromAlpha="1"
android:toAlpha="1"
/>
</set>
其實(shí)就是設(shè)置透明度一直為1粹庞,效果實(shí)現(xiàn)跟產(chǎn)品要求一致,并且不用重新另起一個(gè)頁(yè)面了洽损,一開(kāi)始的研究方向就出問(wèn)題了庞溜。
記自己的一次踩坑之旅,后者可以少耽誤點(diǎn)時(shí)間了碑定,共勉