android 屏幕横竖切换问题

android横竖屏切换问题 上篇博文介绍了一下关于unity接入华为sdk的问题,最后发现发布到android机器上横竖屏的切换问题会导致接入华为sdk后付款后退出华为账号进入游戏提示登录,登录后卡死、闪退、黑屏等问题。经过在网上查了一些资料得知,可能是android横竖切换重新加载Activity导致。    然后我就在查了一下关于android横竖屏切换问题。关于横竖屏切换,在unity中 Player setting 阅读详情

Android 里面控制Activity的方向,只要在AndroidManifest.xml里面对应的Activity节点下加一句android:screenOrientation="landscape"(landscape是横屏,portrait竖屏)。

 

我凭这句话混了一年,基本都可以的,但是这几天我发现这招不是万能的了。

 

项目里面有一个横屏播放视频的PlayAcitivity,我和之前一样设置了android:screenOrientation="landscape"。到这边都没有问题,后来加了一个需求,点击屏幕上面的”评论”按钮,弹出一个对话框,这个对话框我是用Activity实现的。效果是:竖屏、评论界面占据屏幕的中间一块,周围是半透明的。

 

神奇的事情出现了,评论窗口弹出后,我发现后面的播放界面居然变成了竖屏。(因为上面说过,这个对话框只暂居了大半个屏幕,周围透明,所以可以看见后面的界面PlayAcitivity)。

 

看见屏幕切换为竖屏了,我就郁闷了,我明明设置了android:screenOrientation="landscape",为什么还切换呢。

 

后来谷歌、百度…  也没有找出原因来。自我理解是这样的:虽然PlayAcitivity被遮住了,但是依然有一部分可见。而顶部窗口(对话框)是设置为android:screenOrientation="portrait"的,屏幕只有一个,肯定是根据顶部窗口的设置为准。

 

 

Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载),怎么使屏幕横竖屏切换时,当前的Activity不销毁呢?

 

在AndroidManifest.xml中为Activity设置configChanges属性.

configChanges有如下选项:  

1. orientation :屏幕在纵向和横向间旋转;

2. keyboardHidden:键盘显示或隐藏;

3.fontScale: 用户变更了首选的字体大小  

4.locale: 用户选择了不同的语言设定;

5. keyboard: 键盘类型变更,例如手机从12键盘切换到全键盘 

6. touchscreen或navigation: 键盘或导航方式变化,

如果缺少了keyboardHidden选项,不能防止Activity的销毁,并且在之后提到的onConfigurationChanged事件中只能捕获竖屏变横屏的事件不能捕获横屏变竖屏。

 

 

android:onConfigurationChanged实际对应的是Activity里的onConfigurationChanged()方法。在AndroidManifest.xml中添加上述代码的含义是表示在改变屏幕方向、弹出软件盘和隐藏软键盘时,不再去执行onCreate()方法,而是直接执行onConfigurationChanged()。如果不申明此段代码,按照Activity的生命周期,都会去执行一次onCreate()方法,而onCreate()方法通常会在显示之前做一些初始化工作。所以如果改变屏幕方向这样的操作都去执行onCreate()方法,就有可能造成重复的初始化,降低程序效率是必然的了,而且更有可能因为重复的初始化而导致数据的丢失。这是需要千万避免的。

 

 

 

Android XML設置屏幕方向(android:screenOrientation)详解 主要介绍了Android XML設置屏幕方向(android:screenOrientation)详解的相关资料,需要的朋友可以参考下 立即下载

相关推荐

Windows10完美驱动Apple Studio Display全攻略:从雷电转接到亮度调节(附N卡兼容列表)

本文详细介绍了在Windows10系统下如何完美驱动Apple Studio Display显示器,包括雷电接口转接方案、BootCamp驱动安装及NVIDIA显卡兼容性测试。特别推荐GTX 1660 Super等显卡,提供5K@60Hz稳定输出,并分享色彩管理及日常使用技巧,帮助用户充分发挥这款苹果显示器的性能。

weixin_29284657的博客 1089

2024年Android最新Android 面试必备 - http 与 https 协议,大厂Android高级面试题汇总解答

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2301_82242990的博客 1176

产品必备技能(十):如何绘制原型图?先要绘制页面流程图+页面原型图!附实操原型图、流程图实例(抖音)

文章目录目标题目实操步骤模板实操【抖音】APP的视频发布功能页面流程绘制页面流程图合格标准绘制页面原型图合格标准 目标 新入行的产品经理都对原型抱有向往的心境,但是有经验的产品经理不会一上来就画原型,而是先画页面流程再来画原型。通过学习,你将学会如何用页面流程图规划用户行为路径、如何借助原型识别问题、减少风险、有效沟通。 题目 任意选择一款你喜欢的产品,体验某个功能,下载并梳理此功能至少5个以上的页面流程跳转点(后面会解释),还原2 - 3个主要界面的低保真原型图。 实操步骤 可使用手绘以及Process

汪雯琦的博客 4842

h5使用video播放视频,部分浏览器横屏播放后返回,屏宽还是横屏长度,刷新页面就好

//判断手机横竖屏状态: let flag = 0; window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function () { if (window.orientation === 180 || window.orientati...

weixin_43587872的博客 1681

综合能源系统多时间尺度优化调度!诸多创新点让你抓住审稿人的心!

主要介绍综合能源系统的设备组成结构,并针对屋顶光伏系统、冷-热-电联供系统中的燃气轮机、燃气锅炉、光伏溴化锂制冷机、卡琳娜余热发电、中央空调系统,以及外网交互系统的配电网与天然气管网交互关系进行数学建模。1) 源-荷-储协同调度:研究屋顶光伏、燃气轮机、燃气锅炉等源侧设备,中央空调、电-热-冷负荷、可平移电负荷、可削减温控负荷等负荷侧资源,以及储能系统、电动汽车等储能侧设备的协同调度,以提高风光消纳能力,满足社会能源需求。通过电转热、电转冷、电转气等多能耦合方式,可进一步促进可再生能源的应用与发展。

weixin_48747334的博客 1488

逆向实战:如何绕过iTunes 12.6.5.3的反调试机制(附X64dbg插件配置)

本文深入剖析了iTunes 12.6.5.3的反调试机制与登录协议。通过X64dbg动态调试与IDA静态分析,详细演示了如何绕过其反调试检测,并定位到核心的登录协议加密函数,揭示了其请求签名(X-Apple-ActionSignature)的生成逻辑与依赖关系,为客户端安全研究与协议分析提供了实战思路。

weixin_29202213的博客 742

项目笔记——安卓WebView加载H5页面问题处理

记录Android项目开发中,使用WebView加载H5页面遇到的问题及解决方法。

lht80s的博客 4518

华为OD机试 - 打印机队列 - 优先队列(Python/JS/C/C++ 双机位C卷 200分)

这个问题要求模拟打印机的文件调度过程,关键在于正确处理每个打印机队列中的文件优先级和文件进入队列的顺序。优先级处理:每个文件有一个 1 到 10 的优先级,数字越大优先级越高,打印机应首先处理优先级最高的文件。在打印机 1 的队列中插入了 3 个文件,分别有不同的优先级,其中编号 3 的文件优先级最高,先被取出。因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10 不同的 优先级,其中数字越大优先级越高。在打印机 2 的队列中插入了 1 个文件,优先级为 1,因此它被首先取出。

学Java,找哪吒 1079

Android 横竖屏切换问题分析

关于横竖屏切换,如果不做任何操作的话,activity 会重新走onCreate()方法,如果这里面有很作操作的话,就会有很多资源浪费,如果,页面保存了一些数据,那么也会清空。 解决方法,在清单文件中添加: android:configChanges="orientation|keyboardHidden|screenSize"这样就不会再走oncreate方法了,如果需要在横竖切换的时候做一

七月雨的专栏 1093

信息传输仿真:卫星通信系统仿真_(12).卫星通信系统仿真软件介绍

卫星通信系统仿真软件是进行卫星通信系统设计和性能优化的重要工具。通过这些软件,用户可以模拟和分析各种通信场景,验证不同的通信协议和算法,优化系统参数和配置。本节介绍了 MATLAB Simulink、NS-3、OPNET 和 SystemVue 的基本功能、特点和配置方法,希望对读者在选择和使用仿真软件时提供参考。在实际应用中,建议根据项目需求和团队能力,综合考虑选择合适的仿真软件。

2401_87715305的博客 1278

【语音识别】基于MFCC特征实现说话人语音识别matlab源码

1 模型 采用能够反映人对语音的感知特性的Mel频率倒谱系数(MFCC)作为特征参数,以及为避免时间规整问题采用矢量量化技术开发的说话人识别系统.MFCC主要的是模拟人耳的听觉过程,相对于其它参数它对语音波形的变化不敏感,更加稳定,系统取得很好的识别结果,实验表明系统训练和识别的计算量和存储量都比较低. 2 部分代码 functionvarargout=Main(varargin) % MAIN M-file for Main.fig % MAIN, by itself...

qq_59747472的博客 848

android屏幕切换黑屏,android旋转屏幕 半边黑屏

LayaAir Native SDK 0.9.7 旋转后黑屏 老版本LayaAir Native SDK 0.9.2正常//初始化引擎Laya.init(Browser.width, Browser.height, WebGL);Laya.stage.bgColor = "#ffeff0";//设置横竖屏//Laya.stage.optimizeScrollRect = true;Fon...

weixin_42546508的博客 1265

SAP SmartForms字体 :从OTF缓存溢出到完美解决

精准诊断:遇到错误,首先区分是图片过大还是字体嵌入导致。删除图片测试是最快的判别方法。字体上传规范始终从SE73入口上传用于表单打印的字体。强烈建议应用SAP Note 1301018,确保上传时勾选“不替换其他字体”,避免系统自动替换引发的意外问题。如需为同一字体族上传粗体、斜体等变体,请在SE73初始屏幕上勾选对应的属性框(如BOLD),然后分别上传对应的字体文件(如上传过程中,系统会提示输入RTF控制序列信息,这是确保打印预览正常显示的关键步骤,必须正确填写。方案选型快速止血:采用方案一(

Pegasus666的博客 294

横竖切换android,关于Android横竖屏幕切换问题

在日常生活中,手机已经从生活品变成日常必需品,而手机屏幕的切换似乎是每个手机都必有的一个功能,我们在看手机播放器视频的时候,在玩手机游戏的时候,在进行一些需要切换分辨率而达到更好的效果的时候,手机屏幕的切换提升了我们对视觉盛宴的一个lever,那手机屏幕是如何做到切换的呢?切换横竖屏,分两种,销毁当前的Activity重新创建一个Activity,以及不销毁当前的Activity,出于考虑输入数据...

weixin_32312913的博客 416

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android 屏幕横竖切换的问题

屏幕在切换的时候,生命周期会重新运行一遍,google给予我们两种解决方式,一种是将含有状态对对象保存起来,在切换后恢复数据;另一种是切换时禁止重新运行声明周期,需要我们手动处理数据。 方法一:       通过碎片Fragment来实现数据存储,这里说明一下为什么用fragment,因为系统为我们提供的savedInstanceStat...

不忘初心 593

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android中解决手机屏幕横竖屏切换问题

Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载),怎么使屏幕横竖屏切换时,当前的Activity不销毁呢? 1. 在AndroidManifest.xml中为Activity设置configChanges属性, application android:icon="@drawable/icon" android:

Fine。晨曦~-[清晨] の第一缕阳光 2317

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android旋转屏幕闪退,Android 横竖屏切换以及横屏启动闪退问题

目前一般情况下 在横竖屏情况下 我们会遇到一些问题 例如横竖屏显示ui 比例问题 还有activity重启问题 今天说三个问题 一是横竖屏切换 二是 禁止屏幕旋转说一下屏幕切换时 的activity 生命周期onPause()—->onDestroy()—–>onCreate()先说第一个 横竖屏切换 一般的套路如下在manifast.xml 中 给当前activity配置 防止act...

weixin_35924719的博客 1694

Android手机横竖屏幕切换时Activity的重启问题

[color=red]Android每次屏幕的横竖切换Activity会重新OnCreate 为避免每次切换屏幕方向后重启Activity 可修改AndroidManifest.xml 在activity标签内加入以下属性: android:configChanges="orientation|keyboardHidden" 再在Activity代码中覆盖onConfiguration...

lw585625的博客 577

小视频程序源码Android 屏幕横竖切换的问题

屏幕在切换的时候,生命周期会重新运行一遍,google给予我们两种解决方式,一种是将含有状态对对象保存起来,在切换后恢复数据;另一种是切换时禁止重新运行声明周期,需要我们手动处理数据。 方法一: 通过碎片Fragment来实现数据存储,这里说明一下为什么用fragment,因为系统为我们提供的savedInstanceState bundle 并不是携带大型对象,而且存储数据必须序列化,在通过反序列化进行数据还原,有可能消耗大量内存使得配置变更速度缓慢。 1,在Fragment中声明要恢复的对象。 2,在创

云豹网络科技 193

android 横竖屏幕切换 崩溃,解决Android手机横竖屏幕切换时Activity的重启问题 ? it is the F......

Android每次屏幕的横竖切换Activity会重新OnCreate 为避免每次切换屏幕方向后重启Activity 可修改AndroidManifest.xml 在activity标签内加入以下属性:android:configChanges="orientation|keyboardHidden"再在Activity代码中覆盖onConfigurationChanged函数即可@Overrid...

weixin_39800112的博客 655

android横竖屏切换布局闪退,Android 横竖屏切换以及横屏启动闪退问题

目前一般情况下 在横竖屏情况下 我们会遇到一些问题 例如横竖屏显示ui 比例问题 还有activity重启问题 今天说三个问题 一是横竖屏切换 二是 禁止屏幕旋转说一下屏幕切换时 的activity 生命周期onPause()—->onDestroy()—–>onCreate()先说第一个 横竖屏切换 一般的套路如下在manifast.xml 中 给当前activity配置 防止act...

weixin_33304375的博客 1285

android横竖屏总结

<br />http://codinglu.blog.163.com/blog/static/27823969201101084650488/<br /> http://blogold.chinaunix.net/u3/114712/showart_2270838.html<br /> http://hi.baidu.com/android_wfp/blog/category/android%BF%AA%B7%A2<br /> http://hi.baidu.com/android_wfp/blog/

eustoma的专栏 871

【转】Android横竖屏切换问题

Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数: "unspecified":默认...

weixin_30394633的博客 201

dialog横竖屏切换不适配

dialog横竖屏切换不适配 工作中有一个出现个问题:横竖屏切换要求dialog宽填充屏幕 因为横竖屏切换会重新走activity的生命周期,所以可以在创建一个类继承activityprivate void modifyDialogStyle() { getWindow().setLayout( WindowManager.LayoutParams

chrislanbo的专栏 6429

android右到左布局未能切换_Android横竖屏切换及其对应布局加载问题

第一,横竖屏切换连带横竖屏布局问题:如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局。可以通过以下两种方法来切换布局:1)在res目录下建立layout-land和layout-port目录,相应的layout文件名不变,比如:layout-land是横屏的layout,layout-port是竖屏的layout,其他的不用管,横竖屏切换时程序调用Activity的...

weixin_33842051的博客 453

我的Android进阶之旅------>Android横竖屏切换总结

在默认情况下当屏幕从竖评变到横屏时会触发 onConfigurationChanged 事件 在默认情况下会重新加载画面并显示和横屏一样的画面,这样会有2个问题,   * 布局问题,在竖屏 显示的布局 到横屏中由于宽和高发生了变化所有多少都会影响到布局(除非你定制2套画面在然后加个判断在横屏时怎么显示,在竖屏时怎么显示),当然最简单的办法就是在 项目的 AndroidManifest.xml

生活是一种态度,程序也需要心。 969
上一篇: android 事件传递机制
下一篇: 下载apk文件在/data/data/packagename/files/目录下,如何安装成功
dalancon
博客等级 码龄15年 189粉丝 67原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值