Android N 分屏适配

Android N就是Android7.0,虽然没有用过Android N,但是公司要求适配Android N,主要需要适配分屏,我进行了一番探索。

当app切换/恢复分屏或画中画状态时,Activity会回调下面的方法:

@Override    

public void onMultiWindowModeChanged(boolean isInMultiWindowMode) {

//切换到分屏状态

}

@Override   

public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode){

//切换到画中画

}

同时也可以通过Activity.isInMultiWindowMode()来判断当前是否处于分屏模式。

可以通过Activity.isInPictureInPictureMode()判断是否处于画中画模式。


需要注意的是:

1、activity处于分屏模式时,在Activity获取到的方向不是固定的,当使用getResources().getConfiguration().orientation获取屏幕方向时,如果分屏的宽度>高度则系统orientation值为横屏,宽度<高度orientation值为竖屏。。。。。。这是我发现的规律。

2、从普通模式调整到分屏模式时,或者,处于分屏模式动态调整分屏大小时,Activity也会重新onCreate,如果不想让Activity重建可以设置如下:

android:configChanges="screenSize|keyboardHidden|orientation|smallestScreenSize"

这样在分屏的大小调整后,会回调onConfigurationChanged方法。


2、无法获取输入法展示状态。通常情况下,我们通过布局变化来判断输入法是否显示,但是分屏模式下,并且手机竖屏状态时,app弹出输入法不会引起布局变化,也就是说键盘不会遮挡app。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值