文档章节

Android Activity之间跳转出现短暂黑屏的处理方法

今日竹石
 今日竹石
发布于 2014/05/07 11:31
字数 361
阅读 10195
收藏 0

      在默认情况下,Android应用程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初 始化列表数据、向服务器发送请求获取数据等等。同样,使用startActivity(intent)方法从一个Activity进入到新的 Activity时,这个过程中也会出现短暂的黑屏。这个问题的存在是由Android应用框架决定的,但的确很影响用户体验。下面就动手来解决这个黑屏 问题!

第一步:自定义Theme(主题)

在your_project/res/values/styles.xml中加入自定义Activity的Theme,如下所示:

<?xml version="1.0" encoding="utf-8"?>
 <resources>     
 <!-- Activity主题 -->     
 <style name="activityTheme" parent="@android:style/Theme">         
 <item name="android:windowIsTranslucent">true</item>     
 </style> 
 </resources>

其中<item name="android:windowIsTranslucent">true</item>的意思是设置目标 Activity(要启动的那个Activity)是透明的。很容易理解,两个Activity,A和B;在A中启动B,因为B是透明的,看到的背景仍是 A,这样就解决了这个短暂的黑屏问题。

第二步:修改Manifest,将Theme应用到目标Activity上

定义好Theme后,就该为对应的Activity绑定Theme了。这个代码主要在Manifest中实现,在Activity中加上以下属性:

<activity android:name=".activity.BookActivity"        
android:theme="@style/activityTheme" />

做了以上操作即可。


© 著作权归作者所有

共有 人打赏支持
今日竹石
粉丝 41
博文 227
码字总数 181312
作品 0
朝阳
程序员
私信 提问
TabActivity中子Activity相互跳转,及某个Tab需弹出窗的解决方案

在iphone开发中貌似有个UITabBarController,(我以为是toolbar,四楼的兄弟更正的),UITabBarController在底部,也有对应的切换效果,都封装好了。但是在android的中,这个东西它在顶部。。...

长平狐
2012/08/21
1K
0
TabActivity中子Activity相互跳转,及某个Tab需弹出窗的解决方案

在iphone开发中貌似有个UITabBarController,(我以为是toolbar,四楼的兄弟更正的),UITabBarController在底部,也有对应的切换效果,都封装好了。但是在android的中,这个东西它在顶部。。...

长平狐
2012/08/14
592
0
TabActivity中子Activity相互跳转,及某个Tab需弹出窗的解决方案

在iphone开发中貌似有个UITabBarController,(我以为是toolbar,四楼的兄弟更正的),UITabBarController在底部,也有对应的切换效果,都封装好了。但是在android的中,这个东西它在顶部。。...

长平狐
2012/08/09
124
0
CordovaActivity相互跳转中间产生短暂空白

两个activity都是继承了CordovaActivity,即加载html作为activity页面,现在有个问题:activity之间进行相互跳转的时候中间有短暂的空白时间,这个空白可以去掉吗?如果不能去掉,如何修改能...

山顶洞人002
2015/09/09
1K
1
Flutter学习中遇到的问题:已有项目加入Flutter模块

本文主要尝试解决如下几个问题: 如何在在已经项目加入Flutter 混合跳转 混合栈问题 混合栈数据问题 跳转黑屏是因为debug的缘故,打release包则没有。 1. 如何在在已经项目加入Flutter 直接参...

老实巴交的读书人
09/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript面试题大坑之隐式类型转换实例代码

1.1-隐式转换介绍 在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算 这种无需程序员手...

peakedness丶
9分钟前
0
0
示例vue 的keep-alive缓存功能的实现

本篇文章主要介绍了vue 的keep-alive缓存功能的实现,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 #Vue 实现组件信息的缓存 当...

前端攻城老湿
10分钟前
0
0
解析Vue.js中的computed工作原理

我们通过实现一个简单版的和Vue中computed具有相同功能的函数来了解computed是如何工作的。写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批...

前端攻城小牛
12分钟前
0
0
linux脚本中父shell与子shell 执行的几种方式

本文主要介绍以下几个命令的区别: shell subshell source $ (commond) `commond` Linux执行Scripts有两种方式,主要区别在于是否建立subshell 1. source filename or . filename 不创建sub...

问题终结者
29分钟前
1
0
安装jdk和Tomcat

12月12日任务 16.1 Tomcat介绍 16.2 安装jdk 16.3 安装Tomcat Tomcat介绍 Tomcat是apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由apache、Sun和其他一些...

robertt15
30分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部