浅析Activity不可见与透明
2015-12-04 10:49
281 查看
/article/1516567.html
看见标题也许你会有疑问,不可见和透明不是一个意思吗?
从字面上看,这还真是差不多。但在Activity中,这是两个不同的特性,下面我分别解释一下分别和在使用中的注意事项。
Activity不可见:只要在Activity设置setVisible(false)就会令Activity不可见,还可以设置属性 windowNoDisplay =true。在2.2的模拟器中,activity不可见后,屏幕为黑屏,而此时按键会不响应并造成ANR.而在4.0的模拟器中,用此设 置,activity仍可见,但上面的button不响应。这样看来,不可见一定要慎用,否则ANR会造成非常差的用户体验。
Activity透明:使用主题来使其透明,只需在Manifest中activity的设置如下:android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen“。
虽然activity是透明了,但是其上的view如textview、button等控件还是可见的。如果只有一个activity,那么它下面的 activity就会完全暴露出来。根据生命周期分析可知,下面的activity此时的状态在Pause。而此时我按Back键,一个奇怪的现象发生 了:透明activity pause后,下面的activity resume,然后STOP!最后透明activity destroy。
看见标题也许你会有疑问,不可见和透明不是一个意思吗?
从字面上看,这还真是差不多。但在Activity中,这是两个不同的特性,下面我分别解释一下分别和在使用中的注意事项。
Activity不可见:只要在Activity设置setVisible(false)就会令Activity不可见,还可以设置属性 windowNoDisplay =true。在2.2的模拟器中,activity不可见后,屏幕为黑屏,而此时按键会不响应并造成ANR.而在4.0的模拟器中,用此设 置,activity仍可见,但上面的button不响应。这样看来,不可见一定要慎用,否则ANR会造成非常差的用户体验。
Activity透明:使用主题来使其透明,只需在Manifest中activity的设置如下:android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen“。
虽然activity是透明了,但是其上的view如textview、button等控件还是可见的。如果只有一个activity,那么它下面的 activity就会完全暴露出来。根据生命周期分析可知,下面的activity此时的状态在Pause。而此时我按Back键,一个奇怪的现象发生 了:透明activity pause后,下面的activity resume,然后STOP!最后透明activity destroy。
相关文章推荐
- HashSet,TreeSet和LinkedHashSet的区别
- java 读写word java 动态写入 模板文件
- nfs:server is not responding,still trying的解决方法
- 微信公众号的黑色商业链揭秘
- Drupal 7 隐藏 rss 图标
- 怎么解决mysql不允许远程连接的错误1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server“
- app bootstrap font icon
- 《 Swift ---->>UITextField 控件的学习和方法的详细解释《包含代理》》
- socket failed:EACCES(Permission denied)
- HDOJ:5586
- 数据库设计中的四个范式(转)
- 双for循环实现九九乘法表
- Servlet中文乱码问题及解决方案剖析
- Ⅰ.14 如何处理测试脚本发生的异常
- Wi-Fi: Peer-to-Peer Services Technical Spec
- mysql-5.7.9-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法
- VS2010+Opencv-2.4.0的配置攻略
- Android控件之ListView与BaseAdapter
- Oracle11gR2学习笔记汇总
- 浏览器内核分类