博客
关于我
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 数据库重置ID排序
查看>>
Mysql 数据类型一日期
查看>>
MySQL 数据类型和属性
查看>>
mysql 敲错命令 想取消怎么办?
查看>>
Mysql 整形列的字节与存储范围
查看>>
mysql 断电数据损坏,无法启动
查看>>
MySQL 日期时间类型的选择
查看>>
Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
查看>>
MySQL 是如何加锁的?
查看>>
MySQL 是怎样运行的 - InnoDB数据页结构
查看>>
mysql 更新子表_mysql 在update中实现子查询的方式
查看>>
MySQL 有什么优点?
查看>>
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>