2016-11-17 39 views
0

私のアプリケーションでは、カードのリストを表示しています。最初のカードが表示されている場合は、他のリスト項目のステータスバーは半透明で非透明です。これを達成するために私は使用しましたAndroid:FLAG_TRANSLUCENT_STATUSが正しい画面の高さを提供していません

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 

それは画面がシフトしていて、正しい画面の高さが得られません。私はマッチ親としてリスト項目の高さを設定しましたが、getHeightは画面の高さ - ステータスバーの高さとして高さの値を返しています。

+0

親ビューと塗装レイアウトの方法をonLayout呼び出されていた親ビューのパディングを設定し、私はいくつかのコールバックを必要とします私はビューのパディングを変更することができます。私の問題は、ウィンドウフラグを追加した後、onLayoutメソッドを呼び出すビューパディングを変更することです。ここで私は正しい画面の高さを取得しません(常に画面の高さ - ステータスバーの高さを返します) – Manish

答えて

0

Windowビュー上のTreeObserverを設定してくれました。画面サイズがフルに変更した後FLAG_TRANSLUCENT_STATUSを追加した後、木オブザーバを追加し、その中に私がFLAOG_TRANSLUCENT_STATUSを追加した後、適切

getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
      public void onGlobalLayout() { 

      } 
}); 
関連する問題