android横竖屏切换时不要重新加载,android横竖屏切换不重启activity解决方案-程序员宅基地

技术标签: android横竖屏切换时不要重新加载  

部分网友会发现Activity在切换到后台或布局从横屏LANDSCAPE切换到PORTRAIT,会重新切换Activity会触发一次onCreate方法,我们可以在androidmanifest.xml中的activit元素加入这个属性Android:configChanges="orientation|keyboardHidden" 即可,比如

Java代码

/* 声明Display对象,以取得屏幕宽高 */

final Display defaultDisplay = getWindow().getWindowManager()

.getDefaultDisplay();

intScreenH = defaultDisplay.getHeight();

intScreenW = defaultDisplay.getWidth();

/* 如果为Landscape */

if (intScreenW > intScreenH)

{

/* Landscape => Portrait */

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

} else

{

/* Portrait => Landscape */

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}

/* 声明Display对象,以取得屏幕宽高 */

final Display defaultDisplay = getWindow().getWindowManager()

.getDefaultDisplay();

intScreenH = defaultDisplay.getHeight();

intScreenW = defaultDisplay.getWidth();

/* 如果为Landscape */

if (intScreenW > intScreenH)

{

/* Landscape => Portrait */

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

} else

{

/* Portrait => Landscape */

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}

同时在Activity的Java文件中重载onConfigurationChanged(Configuration newConfig)这个方法,这样就不会在布局切换或窗口切换时重载onCreate等方法。代码如下:

Java代码

@Override

public void onConfigurationChanged(Configuration newConfig)

{

super.onConfigurationChanged(newConfig);

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)

{

//land

}

else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)

{

//port

}

}

@Override

public void onConfigurationChanged(Configuration newConfig)

{

super.onConfigurationChanged(newConfig);

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)

{

//land

}

else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)

{

//port

}

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34096885/article/details/117737093

智能推荐

Math.random() 随机数范围非常好的记忆方式_random如何记忆-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏2次。方法千千万,可能你会觉得我这种记忆方式没必要,新手勿喷。例如随机生成5-10之间的数代码如下:(5 + Math.random()*5);随机生成出来的数为5.00到9.99之间,因为int是取整所以小数点后面都不要也就是5到9。公式如下:最小范围+Math.random()*(最大范围-最小范围)例如:87到92之间87+Math.random()*(92..._random如何记忆

VIC水文模型入门攻略(中)VIC的数据和输入文件准备_vic global parameter file-程序员宅基地

文章浏览阅读2.7w次,点赞39次,收藏107次。更正:上篇末尾关于运行汇流程序的部分,在“STEHE.stnloc”文件中需要修改的部分应改为NONE而非none。希望没有太多人因此造成困扰…VIC的输入文件都有啥其实VIC及其汇流程序真正的交互方式都是通过读入文件完成的。它们都要求有一个文件存储各种设定参数,包括运行的日期时间、运行模式以及所需的各种数据文件的位置。 上一篇中启动VIC的命令./vicNl -g /home/.../globa_vic global parameter file

windows 远程桌面研究-程序员宅基地

文章浏览阅读468次。最近因为一个监控相关的项目,深入研究了一下 windows 的 远程桌面的相关知识。1. 如何让关闭了远程桌面连接的用户,对应的 session 立即退出 windows server。大家使用 mstsc.exe 远程桌面登录windows server时,退出时,99.99%的人会直接关闭 mstsc.exe 窗口,而不会点击开始--->退出。导致的问题是,登录用户已经提出了,但..._修改windows maxdisconnection time为默认值

计算广告学_高h之交换小敏系列-程序员宅基地

文章浏览阅读3.4w次,点赞2次,收藏17次。Table of Contents1. 在线广告综述1.1. 广告的定义与目的1.2. 在线广告类型1.3. 在线广告简史1.4. 广告有效性原理1.5. 在线广告相关行业协会2. 计算广告基础2.1. 在线广告的技术特点2.2. 计算广告核心问题2.2.1. 在线广告技术课题2.2.2. 在线广告计费模式2.3. 计算广告系统架构2.4. 基础知识准备_高h之交换小敏系列

docker命令大全(新手必备)_docker 命令行-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏81次。镜像操作docker images #查看本地所有镜像docker load -i nginx.tar #导入nginx镜像docker rmi $(docker images -f "dangling=true" -q) #删除悬浮镜像docker system prune -f #删除停止的容器、至少一个容器未使用的所有网络、悬浮镜像、悬浮构建缓存;-f表示强制删除docker system prune -a #在上述基础上再删除没有任何容器使用的镜像、构建缓存..._docker 命令行

js 匹配手机号正则表达式_js手机号正则过滤-程序员宅基地

文章浏览阅读1.2k次。var phoneRe = /^0?(13[0-9]|14[579]|15[012356789]|16[6]|17[013678]|18[0-9]|19[89]|14[57])[0-9]{8}$/;$(“#tel”).blur(function() { 鼠标里失去焦点的操作var _telp = $("#tel").val();i_js手机号正则过滤

随便推点

Linux 上网络监控工具 ntopng 的安装-程序员宅基地

文章浏览阅读182次。当今世界,人们的计算机都相互连接,互联互通。小到你的家庭局域网(LAN),大到最大的一个被我们称为互联网。当你管理一台联网的计算机时,你就是在管理最关键的组件之一。由于大多数开发出的应用程序都基于网络,网络就连接起了这些关键点。这就是为什么我们需要网络监控工具。ntop 是最好的网络监控工具之一。来自维基百科的 知识“ntop是一个网络探测器,它以与top显示进程般类似的方式显示网络..._linux 安装 pong 工具监听java

linux shell判断目录是否为空的函数_ssh if 文件夹为空-程序员宅基地

文章浏览阅读7.1k次。linux shell判断目录是否为空的函数:Folder_DEPLOY="/usr/local/deploy"#判断目录是否为空的函数function checkDerectory() { if [ "`ls -A $Folder_DEPLOY`" = "" ]; then //do something echo true else //do so_ssh if 文件夹为空

Navicat远程连接不上mysql解决方案-程序员宅基地

文章浏览阅读256次。[root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT[root@localhost ~]# /etc/rc.d/init.d/iptables savebash: /etc/rc.d/init.d/iptables: 没有那个文件或目录[root@localhost ~]# /etc/init.d/ipt..._nacivate连接不上mysql

Ubuntu安装BeeGFS_ubuntu roce网络安装beegfs-程序员宅基地

文章浏览阅读1.2k次。http://blog.sina.com.cn/s/blog_7bd08a4f0102x4q6.html_ubuntu roce网络安装beegfs

QTextEdit中插入特殊符号_qtextedit objectreplacementcharacter-程序员宅基地

文章浏览阅读2k次。Qt允许通过用QTextCharFormat注册一个自定义对象类型来将自定义文本对象插入到文档中。还必须为该类型实现一个QTextObjectInterface,并在文档的QAbstractTextDocumentLayout中注册。当渲染QTextDocument时遇到该对象类型时,接口的intrinsicSize()和drawObject()函数会被调用。主要步骤如下:1、选择一个对象类型。objectType是一个整数,其值大于或等于QTextFormat::UserObject。2、创建一_qtextedit objectreplacementcharacter

内存加载图片压缩 BitmapFactory.Options_android bitmapfactory.options 压缩图片-程序员宅基地

文章浏览阅读397次。/***imgUrl 要压缩的力图片地址**/public Bitmap CompressedImage(String imgUrl) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; //为true时只加载图片的宽高,不_android bitmapfactory.options 压缩图片