diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java b/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java index 13074f8963e445..7f440be3e910e1 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java @@ -25,6 +25,7 @@ import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.WindowManager; +import android.view.DisplayCutout; import android.widget.FrameLayout; import androidx.annotation.Nullable; import com.facebook.common.logging.FLog; @@ -766,8 +767,10 @@ public void onGlobalLayout() { private void checkForKeyboardEvents() { getRootView().getWindowVisibleDisplayFrame(mVisibleViewArea); + DisplayCutout displayCutout = getRootView().getRootWindowInsets().getDisplayCutout(); + int notchHeight = displayCutout == null ? 0 : displayCutout.getSafeInsetTop(); final int heightDiff = - DisplayMetricsHolder.getWindowDisplayMetrics().heightPixels - mVisibleViewArea.bottom; + DisplayMetricsHolder.getWindowDisplayMetrics().heightPixels - mVisibleViewArea.bottom + notchHeight; boolean isKeyboardShowingOrKeyboardHeightChanged = mKeyboardHeight != heightDiff && heightDiff > mMinKeyboardHeightDetected;