Jacksgong / JKeyboardPanelSwitch

For resolve the layout conflict when keybord & panel are switching (Android键盘面板冲突 布局闪动处理方案)
Apache License 2.0
4.19k stars 684 forks source link

contentView.getResources() .getDisplayMetrics().heightPixels 返回值不是真正的height #86

Open qyf123 opened 6 years ago

qyf123 commented 6 years ago

image

您好,我的项目里在OPPO R15(1080x2280)上, 这个地方返回的heightPixels 是2200,结果就是 phoneDisplayHeight = actionBarOverlayLayoutHeight; 导致会进入上图的地方,最后无法回调到onKeyboardShowing ; 非全屏,非沉浸式;

但是在这个demo里,却是没问题的,

搞不懂了,求破;

Heycz commented 6 years ago

我也发现个别机器获取这个高度和实际并不一样,导致出现问题,我的是魅族手机,getResources().getDisplayMetrics().heightPixels获取的高度并不是实际手机的高度 DisplayMetrics metrics = new DisplayMetrics(); ((Activity)contentView.getContext()).getWindowManager().getDefaultDisplay().getRealMetrics(metrics); metrics.heightPixels但是我这样去拿高度就准确了

Heycz commented 6 years ago

@qyf123 应该是你工程内修改了Resources 我排查了一下发现 image 当初为了多语言在N以上设置了context.createConfigurationContext,导致Resources的高度变了