博客
关于我
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 证明为什么用limit时,offset很大会影响性能
查看>>
mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
查看>>
mysql 里对root及普通用户赋权及更改密码的一些命令
查看>>
Mysql 重置自增列的开始序号
查看>>
MySQL 高可用性之keepalived+mysql双主
查看>>
mysql5.6.21重置数据库的root密码
查看>>
MySQL5.6忘记root密码(win平台)
查看>>
mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
查看>>
MySQL5.7.18主从复制搭建(一主一从)
查看>>
MySQL5.7.19-win64安装启动
查看>>
mysql5.7性能调优my.ini
查看>>
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>