2016-11-17 1 views
0

내 애플리케이션에서 카드 목록을 표시하고 있습니다. 첫 번째 카드가 보이면 다른 목록 항목에 대해 상태 표시 줄이 반투명 및 반투명 상태가됩니다. 이것을 달성하기 위해서 내가 사용한 것Android : FLAG_TRANSLUCENT_STATUS가 정확한 화면 높이를 제공하지 않습니다.

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

화면이 바뀌고 정확한 화면 높이가 나지 않습니다. 목록 항목 높이를 일치하는 부모로 설정했지만 getHeight가 화면 높이 - 상태 표시 줄 높이로 높이 값을 반환하고 있습니다.

+0

을 onLayout 호출 한 부모 뷰 패딩을 설정 화면 크기는 전체로 변경되면, 좀 콜백이 필요 화면, 그래서보기 패딩을 수정할 수 있습니다. 내 문제는, 창 플래그를 추가 한 후 onLayout 메서드를 호출하는보기 안쪽 여백을 변경합니다. 여기에서는 정확한 화면 높이를 얻지 못합니다 (항상 화면 높이 - 상태 표시 줄 높이를 반환합니다) – Manish

답변

0

Window View의 TreeObserver 설정이 효과적입니다. FLAG_TRANSLUCENT_STATUS를 추가 한 후, 트리 관찰자를 추가하고 그 안에 내가 FLAOG_TRANSLUCENT_STATUS를 추가 한 후 부모 뷰의 방법 그린 레이아웃 제대로

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

      } 
}); 
관련 문제