1

私はフルスクリーンで、"false"fitsSystemWindowsを設定することで、ナビゲーションバーやステータスバーの後ろに行くの地図の断片を持っています。しかしこれは、コンパスやGoogleロゴなどのマップオブジェクトもシステムウィンドウの外側に収まることを意味します。私は要素がウィンドウの内側に収まる方法があるかどうかを知りたい。あなたが下の画像でわかるように、Googleロゴは私が本当に好きでないナビゲーションバーの後ろに座っています。ソフトキーのないデバイスは、ロゴの位置がずれてしまいますので、パディングを設定したくありません。どんな解決策も高く評価されています。 enter image description hereアンドロイド:どのようにシステムウィンドウ内のみマップオブジェクトに合わせて?

答えて

1

ソフトウェアキーの有無にかかわらずデバイスを対象にし、マップオブジェクトがソフトウェアキーを持つデバイスのフレーム内に収まるようにパディングを調整することで、実用的な解決策を見出しました。これは公式な方法ではありませんが、機能します。

boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); 
boolean hasHomeKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME); 

     if (hasBackKey && hasHomeKey) { 
       googleMap.setPadding(35, 0, 0, 25); 
//for devices with hard keys// 
      } else { 
       googleMap.setPadding(35, 0, 0, 165); 
//for devices with soft keys// 
      } 
     } 

enter image description here

関連する問題