日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 跳转动画黑屏,Android8.0 适配解决页面跳转过程出现短暂黑屏的问题

發布時間:2025/3/12 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 跳转动画黑屏,Android8.0 适配解决页面跳转过程出现短暂黑屏的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小菜在適配 Android8.0 過程中,遇到很多問題,有很多很常見的問題,今天來整理一下頁面跳轉時黑屏的問題。

問題猜測

猜測一:

顯示 Activity 頁面之前會優先開啟一個 Starting Window(Preview Window),等待 Activity 加載完成之后顯示 UI 界面,猜測在這個等待過程中可能會出現頁面跳轉時的短暫黑屏。

猜測二:

小菜的 BaseActivity 頁面中在 onCreate() 和 finish(),方法中添加了進入頁面和退出頁面時的動畫效果,猜測可能是動畫效果不兼容引起頁面跳轉時的短暫黑屏。

@Override

public void onCreate(Bundle savedInstanceState) {

if (toggleOverridePendingTransitionStart()) {

overridePendingTransition(R.anim.slide_right_in, 0);

}

super.onCreate(savedInstanceState);

}

@Override

public void finish() {

super.finish();

BaseAppManager.getInstance().removeActivity(this);

if (toggleOverridePendingTransitionFinish()) {

overridePendingTransition(0, R.anim.slide_right_out);

}

}

嘗試解決

優先嘗試修改主題樣式,小菜前段時間整理 解決 Android 升級 SDK API 27 過程中遇到的問題 中有一個 Only fullscreen opaque activities can request orientation 問題,對于透明或半透明頁面,Android8.0 需要將主題中的 android:windowActionBar 屬性設為 false;小菜理解這個屬性設為 true 是設置本頁面為透明頁面,小菜以為如果去掉相當于省略這個過渡效果,等待 1-2s 時間進入新頁面;測試在小菜的 Android8.0 應用里面依舊會出現跳轉短暫黑屏現象,故嘗試方式一失敗!

再次嘗試修改主題樣式,以為萬能的添加主題背景圖,設置主題 windowBackground,小菜以為添加一張透明背景圖就可以解決;測試在小菜的應用背景圖是有的,但還是會出現跳轉短暫黑屏現象,故嘗試方式二失敗!

false

false

@null

@drawable/background_splash

@null

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

小菜擔心頁面中會有其他因素影響,新建一個 AppCompatActivity 進行測試,以上兩種方法均不會出現黑屏問題;因此小菜開始考慮 overridePendingTransition 動畫效果的影響,把 BaseActivity 中的動畫效果去掉;測試一切正常,沒有出現短暫黑屏現象,因此確定是 overridePendingTransition 問題;

小菜測試發現是在 Android8.0 中 overridePendingTransition 若設為進入和進出為 0 時會出現黑屏,解決方案是:將 0 換為固定的進入和退出的 anim 即可,如下:

// 原來

overridePendingTransition(R.anim.slide_right_in, 0);

// 替換為

overridePendingTransition(R.anim.slide_right_in, R.anim.slide_right_out);

// 原來

overridePendingTransition(0, R.anim.slide_right_out);

// 替換為

overridePendingTransition(R.anim.slide_right_in, R.anim.slide_right_out);

Tip:若只想有進入或退出時的動畫,另一個動畫去掉呢,可以自定義個 no_anim,替換上即可:

android:duration="0">

// 原來

overridePendingTransition(0, R.anim.slide_right_out);

// 替換為

overridePendingTransition(R.anim.no_anim, R.anim.slide_right_out);

插曲總結

overridePendingTransition 第一個參數為頁面進入時動畫,第二個參數為頁面退出時動畫,不要記反了;

小菜的 BaseActivity 是在 onCreate() 和 finish() 中分別調用 overridePendingTransition 的,所以想調整個別頁面其他動畫效果時,需要在 onCreate() 和 finish() 方法中方分別定義。

至此,小菜的應用在 Android8.0 中頁面跳轉短暫黑屏問題已解決,測試正常;小菜發現在優化和適配的道路上還有很多意想不到的問題,隨時調整隨時記錄,希望可以順利解決!

來源: 阿策小和尚

總結

以上是生活随笔為你收集整理的android 跳转动画黑屏,Android8.0 适配解决页面跳转过程出现短暂黑屏的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。