【Android每周专题】横竖屏切换和Activity中View状态的保持

本文探讨了Android应用在横竖屏切换时Activity的生命周期变化,详细解析了如何处理布局问题以及如何保持Activity中View状态和数据。通过分析生命周期回调,如onConfigurationChange和onSaveInstanceState,确保用户在屏幕旋转时的体验。
摘要由CSDN通过智能技术生成

本系列文章均为A2BGeek原创,转载务必在明显处注明:
转载自A2BGeek的【Android每周专题】系列,原文链接:http://blog.csdn.net/a2bgeek/article/details/14119801

每周专题名不符实,实在是惭愧,前段时间有点忙,没有及时更新,自我反省一下。

本周专题分为两个部分,第一部分是横竖屏切换的相关问题,第二部分是Activity中数据状态的保持。

横竖屏切换

横竖屏切换时Activity的生命周期

1、启动Activity(竖屏时启动的)

11-01 01:48:17.144: I/a2bgeek(945): onCreate
11-01 01:48:17.594: I/a2bgeek(945): onStart
11-01 01:48:17.594: I/a2bgeek(945): onResume

2、由竖屏切换为横屏(把真机横过来或者Ctrl+F11把模拟器横过来)

11-01 01:50:45.533: I/a2bgeek(945): onPause
11-01 01:50:45.533: I/a2bgeek(945): onStop
11-01 01:50:45.543: I/a2bgeek(945): onDestroy
11-01 01:50:45.593: I/a2bgeek(945): onCreate
11-01 01:50:45.934: I/a2bgeek(945): onStart
11-01 01:50:45.934: I/a2bgeek(945): onResume

3、由横屏再切换为竖屏

11-01 01:51:15.214: I/a2bgeek(945): onPause
11-01 01:51:15.214: I/a2bgeek(945): onStop
11-01 01:51:15.214: I/a2bgeek(945): onDestroy
11-01 01:51:15.277: I/a2bgeek(945): onCreate
11-01 01:51:15.704: I/a2bgeek(945): onStart
11-01 01:51:15.704: I/a2bgeek(945): onResume

从日志中可以清楚地看到,横竖屏切换会让Activity销毁再重建

横竖屏切换时Activity的布局问题

在做开发的时候可能很少考虑横屏布局的问题,尤其是接触Android开发不久的同学,说实话我个人也没有把手机横过来用的习惯,但是有的时候有的人有些事却不得不让开发者考虑横屏布局的问题。
在只有一套布局的情况下,Android系统会为横屏也使用这套布局,有的情况下界面看起来会非常难看,因为这套布局通常是为竖屏写的,这个时候开发者就需要 专门为适配横屏写一套布局,还是和竖屏同样的那些View,只是大小、排布方式需要有所改变,然后把这套布局放到layout-land文件夹下面,这下如果手机再横屏,Android系统就会使用layout-land下面的这套布局了。如图下图所示,横屏的时候会使用layout-land下面的布局,竖屏的时候会使用layout-port下面的布局,layout这个文件夹在这种情况下是没有用的,可以删了。 注意两套布局文件的命名要一致。




横竖屏切换时Activity的销毁重建对开发者的影响

横竖
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值