@@ -34,17 +34,29 @@ public static UIWidgetsViewController getInstance() {
3434 private UIWidgetsViewMetrics viewMetrics ;
3535 private boolean keyboardOpen ;
3636
37+ private float statusHeight ;
38+ private float navigationBarHeight ;
39+
3740 private void setup () {
3841 //Log.i("tag", "On Setup 2");
3942
4043 keyboardOpen = false ;
4144 viewMetrics = new UIWidgetsViewMetrics ();
42-
45+ setupHeights ();
4346 updateViewMetrics ();
4447
4548 setupViewMetricsChangedListener ();
4649 }
4750
51+ private void setupHeights () {
52+ final View unityView = ((ViewGroup )UnityPlayer .currentActivity .findViewById (android .R .id .content )).getChildAt (0 );
53+ Rect rect = new Rect ();
54+ unityView .getWindowVisibleDisplayFrame (rect );
55+
56+ statusHeight = rect .top ;
57+ navigationBarHeight = unityView .getRootView ().getHeight () - rect .bottom ;
58+ }
59+
4860 public static UIWidgetsViewMetrics getMetrics () {
4961 UIWidgetsViewController controller = getInstance ();
5062 return controller .viewMetrics ;
@@ -143,6 +155,10 @@ public void updateViewMetrics() {
143155 viewMetrics .insets_bottom = navigationBarHidden ? calculateBottomKeyboardInset (rect ) : rect .bottom ;
144156 viewMetrics .insets_left = 0 ;
145157
158+ //adjust
159+ viewMetrics .insets_bottom -= navigationBarHeight ;
160+ viewMetrics .padding_top -= statusHeight ;
161+
146162 //Log.i("UIWidgetsDebug", "checks: " + navigationBarHidden + " " + rect.bottom);
147163 //Log.i("UIWidgetsDebug", " padding: " + viewMetrics.padding_top + " " + viewMetrics.padding_right + " " + viewMetrics.padding_bottom + " " + viewMetrics.padding_left);
148164 //Log.i("UIWidgetsDebug", " insets: " + viewMetrics.insets_top + " " + viewMetrics.insets_right + " " + viewMetrics.insets_bottom + " " + viewMetrics.insets_left);
0 commit comments