This is an automated email from the ASF dual-hosted git repository.
kyork pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git
The following commit(s) were added to refs/heads/master by this push:
new 73c55cb [Android] fix Android9 inaccurate ScreenHeight problem (#2536)
73c55cb is described below
commit 73c55cb9ff0cb68a74155ac862f89484b31f327b
Author: katherine95s <[email protected]>
AuthorDate: Thu Jun 13 11:08:13 2019 +0800
[Android] fix Android9 inaccurate ScreenHeight problem (#2536)
* [Android] fix Android9 inaccurate SreenHeight problem
---
.../src/main/java/com/taobao/weex/utils/WXViewUtils.java | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/android/sdk/src/main/java/com/taobao/weex/utils/WXViewUtils.java
b/android/sdk/src/main/java/com/taobao/weex/utils/WXViewUtils.java
index 1f11344..8d55daf 100644
--- a/android/sdk/src/main/java/com/taobao/weex/utils/WXViewUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/utils/WXViewUtils.java
@@ -24,6 +24,7 @@ import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Path;
import android.graphics.PixelFormat;
+import android.graphics.Point;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
@@ -36,6 +37,8 @@ import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
+import android.view.WindowManager;
+
import com.taobao.weex.WXEnvironment;
import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.WXSDKManager;
@@ -206,8 +209,17 @@ public class WXViewUtils {
public static int getScreenHeight(Context cxt) {
if(cxt!=null){
+ WindowManager wm;
Resources res = cxt.getResources();
- mScreenHeight =cxt.getResources().getDisplayMetrics().heightPixels;
+ if(Build.VERSION.SDK_INT >= 28 && (wm =
(WindowManager)cxt.getSystemService(Context.WINDOW_SERVICE)) != null
+ && wm.getDefaultDisplay() != null){
+ Point size = new Point();
+ wm.getDefaultDisplay().getRealSize(size);
+ mScreenHeight = size.y;
+ }
+ else {
+ mScreenHeight = cxt.getResources().getDisplayMetrics().heightPixels;
+ }
if(WXEnvironment.SETTING_FORCE_VERTICAL_SCREEN){
mScreenWidth = res
.getDisplayMetrics()