延安做网站电话,怎么做简单网站,做企业网站,伪静态网站小菜在适配 Android8.0 过程中#xff0c;遇到很多问题#xff0c;有很多很常见的问题#xff0c;今天来整理一下页面跳转时黑屏的问题。问题猜测猜测一#xff1a;显示 Activity 页面之前会优先开启一个 Starting Window(Preview Window)#xff0c;等待 Activity 加载完…小菜在适配 Android8.0 过程中遇到很多问题有很多很常见的问题今天来整理一下页面跳转时黑屏的问题。问题猜测猜测一显示 Activity 页面之前会优先开启一个 Starting Window(Preview Window)等待 Activity 加载完成之后显示 UI 界面猜测在这个等待过程中可能会出现页面跳转时的短暂黑屏。猜测二小菜的 BaseActivity 页面中在 onCreate() 和 finish()方法中添加了进入页面和退出页面时的动画效果猜测可能是动画效果不兼容引起页面跳转时的短暂黑屏。Overridepublic void onCreate(Bundle savedInstanceState) {if (toggleOverridePendingTransitionStart()) {overridePendingTransition(R.anim.slide_right_in, 0);}super.onCreate(savedInstanceState);}Overridepublic 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小菜以为添加一张透明背景图就可以解决测试在小菜的应用背景图是有的但还是会出现跳转短暂黑屏现象故尝试方式二失败falsefalsenulldrawable/background_splashnullcolor/colorPrimarycolor/colorPrimaryDarkcolor/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:duration0// 原来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 中页面跳转短暂黑屏问题已解决测试正常小菜发现在优化和适配的道路上还有很多意想不到的问题随时调整随时记录希望可以顺利解决来源 阿策小和尚