首先讲一下问题的背景最近在修改bug的时候出现折叠屏在分屏模式滑动两边屏幕的大小时出现布局变形或遮挡的情况我的处理方式如下
//第一种方式当然是官方提供的回调
获取当前布局放生改变的时候给出的宽高或者直接设置当前给出的宽高
还有就是让布局发生改变的时候可以在这进行刷新布局
问题1:这个是干嘛的 Configuration newConfig 我们可以用它获取当前布局放生改变的时候的宽高对当前view进行设置比如newConfig.screenWidthDp,newConfig.screenHeightDp:,还有一种方式就是float ratio = (float) newConfig.screenWidthDp / newConfig.screenHeightDp;获取当前屏幕比率,在滑动中间的分屏时打log查看当前的变形的比率是多少可以进行限制
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i("config", "newConfig.screenHeightDp:" + newConfig.screenHeightDp
+ ", newConfig.screenWidthDp" + newConfig.screenWidthDp);
}
第二种方式下面代码时一个点击事件里面的但是我需要进行限制让分屏滑动的比率超过布局承受极限时对点击事件作出限制
Configuration configuration = this.getResources().getConfiguration();
float ratio = (float) configuration.screenWidthDp / configuration.screenHeightDp;
boolean isRunningInFullMode = !this.isInMultiWindowMode();
if (isFixFoldDeviceFullscreenButton()||ratio>=0.52 && ratio<=0.53 ||ratio>0.56 && ratio<0.57 && isRunningInFullMode){
//满足条件执行
}else{
Toast.makeText(this, "当前滑动分屏不支持点击加号", Toast.LENGTH_SHORT).show();
}
//还有就是关于集成折叠屏功能请移步我的另一篇博客
集成折叠屏功能


被折叠的 条评论
为什么被折叠?



