分屏模式下的横竖屏并非为非分屏模式下的横竖屏,其横竖屏为非绝对的,具体的横竖值根据分屏后的高度与宽度值大小而定。
//1.宽高判断
DisplayMetrics dm = getResources().getDisplayMetrics()
int width = dm.widthPixels;
int height = dm.heightPixels;
//然后根据宽高的大小比,判断是竖屏(portrait)还是横屏(landscape)。
//2. 是否为竖屏,或者也可以判断是否为横屏。
if(getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT)
private void setHomepageAppBarPaddingTop() {
final View appbar_layout = this.findViewById(R.id.appbar_layout);
final int paddingTop=getResources().getDimensionPixelSize(R.dimen.appbar_padding);
ComponentName componentname = new ComponentName("com.android.>>>>", "om.android.>>>>.******");
if(isInMultiWindowMode() //分屏 &&!componentname.equals(Objects.requireNonNull(Utils.getSplitScreenPrimaryStack()).topActivity)){
Log.d(TAG, "setHomepageAppBarPaddingTop: " + Utils.getSplitScreenPrimaryStack().topActivity.toString()+ this.getResources().getConfiguration().orientation+"");
appbar_layout.setPadding(0,0,0,0);
}else{
appbar_layout.setPadding(0,paddingTop,0,0);
}
}
// 判断当前分屏主堆栈
public static ActivityManager.StackInfo getSplitScreenPrimaryStack(){
try {
return ActivityTaskManager.getService().getStackInfo(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_UNDEFINED);
} catch (RemoteException e) {
return null;
}
}
// 分屏监听
@Override
public void onMultiWindowModeChanged(boolean isInMultiWindowMode) {
super.onMultiWindowModeChanged(isInMultiWindowMode);
}