博客
关于我
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锁(2):表级锁
查看>>
MySQL错误提示mysql Statement violates GTID consistency
查看>>
MySQL集群解决方案(4):负载均衡
查看>>
MySQL面试宝典
查看>>
mysql面试题学校三表查询_mysql三表查询分组后取每组最大值,mysql面试题。
查看>>
Mysql面试题精选
查看>>
MySQL面试题集锦
查看>>
mysql面试题,存储引擎InnoDB和MyISAM
查看>>
mysql面试题:为什么MySQL单表不能超过2000W条数据?
查看>>
mysql面试题:创建索引时会不会锁表?
查看>>
mysql面试题:高度为3的B+树可以存放多少数据?
查看>>
mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
查看>>
mysql驱动、durid、mybatis之间的关系
查看>>
mysql驱动支持中文_mysql 驱动包-Go语言中文社区
查看>>
MySQL高可用切换_(5.9)mysql高可用系列——正常主从切换测试
查看>>
MySQL高可用解决方案详解
查看>>
MYSQL高可用集群MHA架构
查看>>
MySQL高级-MySQL并发参数调整
查看>>
MySQL高级-MySQL应用优化
查看>>