2017-02-20 11 views
0

私はAndroidアプリケーションプロジェクトに取り組んでおり、画面の高さを確認するためにonCreate()を使用してナビゲーションバー(画面上のもの)の可視性を検出しようとしました。mScreenHeightつまり、ナビゲーションバーが画面に表示されているかどうかを確認する方法です。ナビゲーションバーの可視性を確認する

Point screenFull = new Point() , screenNavBar = new Point(); 
getActivity().getWindowManager().getDefaultDisplay().getRealSize(screenFull); 
getActivity().getWindowManager().getDefaultDisplay().getSize(screenNavBar); 

View decorView = getActivity().getWindow().getDecorView(); 
if ((decorView.getSystemUiVisibility() & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) { 
    mScreenHeight = screenNavBar.y; 
} else { 
    mScreenHeight = screenFull.y; 
} 

をしかし、私はすでにナビゲーションバーを隠しevethoughナビゲーションバーは、表示されているなど毎回アプリを実行すると、それは常に画面の高さの結果を与えた: はこれまでのところ、私はこのコードで行きました。私はすでにインターネットをサーフし、近い答えは見つけられませんでした。私は助けに感謝します。

答えて

0

"既にnavbarを隠していた"というのは、以前のonCreate()でimmersiveモードを設定していた場合、そのアクティビティが起動する機会があった後に、モード。あなたのチェックをonResume()に移動してみてください。それが動作しない場合は、さらに数秒後にチェックしてみてください。

没入型モードの設定は、あなたのサポートするAPIレベル、特にAmazonへの建物の場合には、非常に難しいと感じました。

関連する問題