Android横竖屏切换小记
来源:互联网 发布:淘宝网通识课代刷 编辑:程序博客网 时间:2024/06/14 21:31
1、默认情况
默认情况下,横竖屏切换时,activity会先destory之后重新调用各个生命周期,且横竖屏切换时不会调用onConfigurationChanged方法。
onCreate-->onStart-->onResume-->(横竖屏切换)onPause-->onSaveInstanceState(可在此生命周期中保存相关数据)-->onDestroy-->onCreate-->onStart-->onResume
2、设置横竖屏切换时Activity不重新绘制
在配置文件中对应的Activity的<activity>标签中设置
android:configChanges="orientation|screenSize"
设置之后切换横竖屏时调用的流程为
onCreate-->onStart-->onResume-->(横竖屏切换)onConfigurationChanged
3、设置固定横屏或竖屏
方法一:在配置文件中设置 android:screenOrientation="portrait"(竖屏:portrait 横屏:landscape)
方法二:在onResume周期中添加如下代码
if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {//强制竖屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}或者
if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {//强制横屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}//因为生命周期的原因,代码强制横屏时,会有竖屏后横屏的过程,在配置文件中设置强制横屏或者在oncreate中设置强制横屏就没关系
4、拓展
配置文件中screenOrientation(设备显示方向)各个值的含义
android:screenOrientation="unspecified":默认值,由系统决定
landscape:横屏
portrait:竖屏
user:用户的当前首选方向
behind:在Activity堆栈中,和下面的activity的方向一致
sensor:由物理感应器决定
nosensor:忽略感应器的效果,这样屏幕方向不会随屏幕的旋转切换,固定竖屏也可用此方法,但有弊端。
sensorLandscape:由物理感应器决定横屏的方向,注意这里不是横竖屏的切换,是横屏的方向切换。
sensorPortrait:由感应器决定竖屏的方向,同上。
reverseLandscape:固定横屏的方向。
reversePortrait:固定竖屏的方向。
fullSensor:由感应器决定方向。
userLandscape:效果同sensorLandscape
userPortrait:效果同sensorPortrait
fullUser:效果同fullSensor
locked:锁定当前屏幕方向,默认竖屏。
- Android横竖屏切换小记
- Android 横竖屏切换小记
- Android 横竖屏切换
- Android横竖屏'切换
- Android横竖屏切换
- Android 横竖屏切换
- Android横竖屏切换
- android 横竖屏切换
- android 横竖屏切换
- Android横竖屏切换
- Android 横竖屏切换
- android切换横竖屏
- android 横竖屏切换
- Android横竖屏切换
- android 横竖屏切换
- Android横竖屏切换
- android 横竖屏切换
- Android横竖屏切换
- 矩阵相乘
- spring security学习笔记1
- tslib移植全过程,可能遇到的所有问题,错误
- vim 操作
- 【vijos】【树形dp】佳佳的魔法药水
- Android横竖屏切换小记
- git 取消commit
- 【Oracle】事务
- 笔试经常遇到的选择排序、冒泡排序和二分法查找
- 实现sqrt(x)
- backBarButtonItem和leftBarButtonItem 区别
- freeswitch/conference分析
- python学习笔记 调试
- 网易视频云互动直播公测正式启动