Android activity+多个fragment 横竖屏切换实现

       1. 这也是一个需求问题,之前实现了一个activity+fragment(FragmentTransaction 我这边是用的开启事务来管理的fragment,当我只显示某个Fragment页面,就将其他的多余的页面去隐藏) 展示页面信息数据的一个功能app,第一个版本的时候功能少,单一,我只需要处理竖屏的页面显示即可,因此我也是简单的在AndroidManifest文件清单去设置activity 下的

     android:screenOrientation=”xxxxx”      landscape 表示始终横屏, portrait 表示始终竖屏   的值。

       2.到了第二个版本,再去用上面的方式就不行了,这边考虑适配(这边用的是 Androidautosize )你也可以看我的另一篇Androidautosize使用注意事项 ,和其他页面的横竖屏切换问题了,奇葩的是,我这边有一个页面是要固定是竖屏(由于竖屏的布局是写死的排版,在横屏的时候,导致布局会错乱和文字重叠问题影响整个app的使用和美化问题),其他要横竖屏切换适配,尝试了很多方法,最后找的一下资料参考,可以用下面的方式去做,我这边的单个activity是主的控制多个fragment 的独立页面。

     3.我这边用的也是在AndroidManifest文件清单去设置activity下添加多一句:

    android:configChanges="orientation|keyboardHidden|screenSize" 

       加了这一句,只是处理横竖屏,不销毁activity的生命周期,重启。然后我们再通过单个fragment的 onHiddenChanged的方法来处理横竖屏的切换问题:

    @Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged(hidden);
        if (hidden) {
            // Log.i(TAG, "隐藏");
        } else {
           //  Log.i(TAG, "显示");
            //指定屏幕的方向为竖屏
           getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

 
 
        }
    }

  Activity屏幕属性有以下几种:


               ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE,//指定横屏
               ActivityInfo.SCREEN_ORIENTATION_PORTRAIT,//指定竖屏
               ActivityInfo.SCREEN_ORIENTATION_USER,//根据用户朝向
               ActivityInfo.SCREEN_ORIENTATION_NOSENSOR,//不受重力影响
               ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE,//横屏动态转换
               ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT,//竖屏动态转换
               ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR,//根据重力变换朝向 

       通过种方式去处理,可以实现自己的功能需求这里做个笔记记录一下自己的处理方式,方便自己的学习。当然我这边的处理方法是比较常用的做法,如果你有更好的横竖屏切换方式可以评论留言,一起探讨横竖问题。

 

 

      

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值