博客
关于我
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
你可能感兴趣的文章
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>
Mysql8在Centos上安装后忘记root密码如何重新设置
查看>>
Mysql8在Windows上离线安装时忘记root密码
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>
mysql8的安装与卸载
查看>>
MySQL8,体验不一样的安装方式!
查看>>
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>
Mysql: 对换(替换)两条记录的同一个字段值
查看>>
mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
查看>>