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

智能推荐

tensor.equal、eq、ge、gt、le、lt、ne、sort、topk、kthvalue、isfinite、isinf、isnan_tensor.ne-程序员宅基地

文章浏览阅读1.2k次。import torcha = torch.rand(2, 3)b = torch.rand(2, 3)# 会比较shape 和 值是否都相同,相同则只返回一个TRUE或者FALSEprint('\n',torch.equal(a, b))# 以下的是要对每一个元素进行比较,print('\n', torch.eq(a, b))print('大于等于\n',torch.ge(a, b))print('大于\n',torch.gt(a, b))print('小于等于\n',torc..._tensor.ne

>>Python:Anaconda3_sshpass-1.06.tar.gz-程序员宅基地

文章浏览阅读452次。Anaconda31、安装1、命令操作安装好之后,可以使用命令conda,可以使用一系列命令参数,conda --help 或 conda -h 、 conda --version 或 conda -V例如,使用conda info 命令如下所示信息:$xxx:~ xxx$ conda info active environment : None shell level : 0 user config file : /Users/xxx/.cond_sshpass-1.06.tar.gz

Learning and Using Jakarta Digester-程序员宅基地

文章浏览阅读601次。今天有空再度学习Struts1.3.9的源码,感觉对org.apache.commons.digester.Digester的认识还很少,上网看了一篇文章讲的比较好,特此转载! 文章出处:http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html?page=1 文章中的案例解释: //生成一个digester。主要

自己封装的文件服务苹果手机无法播放视频-程序员宅基地

文章浏览阅读370次。自己封装的文件服务苹果手机无法播放视频

网鼎杯第四场 shenyue2 writeup_ctf shenyue2-程序员宅基地

文章浏览阅读987次。1. shenyue2题目分析这是一道RSA相关的密码学题目,给出了RSA相关的公钥(n,e)(n,e)(n,e),并且给出了额外的两个参数:一个已知素数rrr以及kkk,并且有如下关系: k=(p−r)dk=(p−r)dk=(p-r)d 其实这是一道2018 CodeGate CTF 的原题,直接按照CTF-WIKI中介绍的解法就可以求出来。而我写这篇文章的目的是向大家介绍另外一种方法,..._ctf shenyue2

将11.x.x升级至16.x.x不成功的一系列问题(二)node-sass sass-loader需安装指定版本_node-sass 升级-程序员宅基地

文章浏览阅读1k次,点赞20次,收藏20次。先根据node版本先锁定node-sass版本 然后再来回切换sass-loader版本 这玩应你就试吧 一试一个一个不吱声_node-sass 升级

随便推点

Cadence OrCAD原理图如何统计元件总数量_cadence 怎样统计smd数量-程序员宅基地

文章浏览阅读4.3k次。Cadence OrCAD原理图如何统计元件总数量本章节教大家如何在Cadence OrCAD原理图如何统计元件总数量操作方法:1、打开原理图文件(File ——Open——Design)。2 、鼠标单击选中根目录下DSN文件夹,右键选择Edit Objecet Properties。3、点击Pivot将横向视图变成纵向视图,选中下方菜单栏Parts。4、将右侧滑块到最下方,就能看..._cadence 怎样统计smd数量

TensorFlow-模型的保存和调用(freeze方式)_freeze tensorflow-程序员宅基地

文章浏览阅读2.1k次。TensorFlow-模型的保存和调用(freeze方式)硬件:NVIDIA-GTX1080软件:Windows7、python3.6.5、tensorflow-gpu-1.4.0一、基础知识freeze:将ckpt的三个文件融合为一个文件,将variables转换为constant,文件更小,更易于移植二、代码展示1、保存模型import tensorflow as..._freeze tensorflow

HttpWebRequest用ip代理Timeout和ReadWriteTimeout失效不听话问题_webrequest 代理 超时没用-程序员宅基地

文章浏览阅读842次。【CSharp 学习笔记】关于ManualResetEvent的用法解决方案:利用ManualResetEvent,使用方面见上面链接 ManualResetEvent mre = new ManualResetEvent(false); var result=""; mre = new ManualRe..._webrequest 代理 超时没用

spring 自定义注解,动态注入Bean-程序员宅基地

文章浏览阅读5k次,点赞3次,收藏18次。文章目录背景ImportBeanDefinitionRegistrar1.定义注解2.启动注解3.实现接口4.扫描器5.使用Bean6.使用注解7.启动类总结背景@Configuration 注解的类会被spring自动的扫描注入为Bean,如果想自己定义一个注解实现相同的功能如何来实现ImportBeanDefinitionRegistrar熟悉spring源码的同学应该知道,注册bean实际上就是注册beandefinition这个类刚好有接口可以实现default void regis

Qt实现TCP网络通信_qt tcpserver-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏8次。用Qt实现TCP服务器与客户端的信息收发_qt tcpserver

【hbase】hbase使用MR统计行数指定yarn队列,及后续遇到的问题_org.apache.hadoop.hbase.mapreduce.rowcounter 增加参数-程序员宅基地

文章浏览阅读1.1k次。一、前言最近需要统计一张hbase表的条数,网上的很多案例都是使用MR的方式来进行统计,所以我们也采用这个方式。但是在实施过程中,遇到一些问题。使用MR去统计时,如果不指定队列,那么就会使用默认的YARN队列,而我们的默认队列是完全没有资源的。网上关于指定YARN队列的文章也比较少,这里整理并记录一下。二、准备这里我们使用 hbase.RowCounter包执行MR的任务。[hbase@bi-hadoop02 ~]$ hbase org.apache.hadoop.hbase.mapreduce_org.apache.hadoop.hbase.mapreduce.rowcounter 增加参数

推荐文章

热门文章

相关标签