博客
关于我
Activity A跳转B,横竖屏切换
阅读量:103 次
发布时间:2019-02-25

本文共 2145 字,大约阅读时间需要 7 分钟。

> Activity A跳到横屏Activity B,B进行横竖屏切换,导致A重新执行OnCreate()生命周期,如何让A不重建?

在Activity A中注册文件描述中加入 android:configChanges="orientation|screenSize|keyboardHidden"  

Caution: Beginning with Android 3.2 (API level 13), the "screen size" also changes when the device switches between portrait and landscape orientation. Thus, if you want to prevent runtime restarts due to orientation change when developing for API level 13 or higher (as declared by the minSdkVersion and targetSdkVersion attributes), you must include the "screenSize" value in addition to the "orientation" value. That is, you must decalare android:configChanges="orientation|screenSize". However, if your application targets API level 12 or lower, then your activity always handles this configuration change itself (this configuration change does not restart your activity, even when running on an Android 3.2 or higher device).

竖屏Activity跳到横屏Activity引发的混乱,Activity横竖屏切换- http://blog.csdn.net/a1030260075/article/details/50560222

> 横竖屏切换代码:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)

    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        int mCurrentOrientation = getResources().getConfiguration().orientation;
        if (mCurrentOrientation == Configuration.ORIENTATION_PORTRAIT) {
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
            params.height = CommonUtils.getScreenWidth(PlayerActivity.this) * 9 / 16;
            rl_content.setLayoutParams(params);
        } else if (mCurrentOrientation == Configuration.ORIENTATION_LANDSCAPE) {
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
            rl_content.setLayoutParams(params);
        }
        DisplayMetrics dm = getResources().getDisplayMetrics();
        Point point = new Point();
        getWindowManager().getDefaultDisplay().getRealSize(point);
        VideoView.setScreenSize(point.x / dm.xdpi * 0.0254f, point.y / dm.ydpi * 0.0254f);
    }

Android横竖屏切换及其对应布局加载问题- http://www.cnblogs.com/Joanna-Yan/p/4824525.html
你可能感兴趣的文章
MySQL命令行登陆,远程登陆MySQL
查看>>
mysql命令:set sql_log_bin=on/off
查看>>
mySQL和Hive的区别
查看>>
MySQL和Java数据类型对应
查看>>
mysql和oorcale日期区间查询【含左右区间问题】
查看>>
MYSQL和ORACLE的一些操作区别
查看>>
mysql和redis之间互相备份
查看>>
MySQL和SQL入门
查看>>
mysql在centos下用命令批量导入报错_Variable ‘character_set_client‘ can‘t be set to the value of ‘---linux工作笔记042
查看>>
Mysql在Linux运行时新增配置文件提示:World-wrirable config file ‘/etc/mysql/conf.d/my.cnf‘ is ignored 权限过高导致
查看>>
Mysql在Windows上离线安装与配置
查看>>
MySQL在渗透测试中的应用
查看>>
Mysql在离线安装时启动失败:mysql服务无法启动,服务没有报告任何错误
查看>>
Mysql在离线安装时提示:error: Found option without preceding group in config file
查看>>
MySQL基于SSL的主从复制
查看>>
Mysql基本操作
查看>>
mysql基本操作
查看>>
mysql基本知识点梳理和查询优化
查看>>
mysql基础
查看>>
mysql基础---mysql查询机制
查看>>