2012-09-17 2 views
1

전체 화면 레이아웃에서 프로그래밍 방식으로 생성 된 버튼이 있습니다. 즉, 필자는 활동이 시작될 때 다음과 같은 코드를 가지고있다.자른 버튼과 FLAG_FULLSCREEN 상호 작용?

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 

.. 그래서 활동이 시작되고 버튼을 만듭니다. 모두 괜찮아 보이는데, 버튼이 정확히 올바른 크기로 표시되고 화면에서 (오른쪽 아래), 버튼 중심에 텍스트가 정확히 표시됩니다.

그런 다음 문제는 intenet을 사용하여 다른 ectivity를 호출 한 다음 나중에 원래 상태로 되돌릴 때 발생합니다. 화면이 다시 그려지는 시점에서, 화면이 약간 벗어난 것처럼 빠르게 잡아 당긴 것처럼 약간의 흔들림을 느낄 수 있습니다. 최종 화면은 아래쪽에있는 버튼이 잘린 것을 제외하면 대부분 ok입니다.

이것은 내 삼성 은하 SII에서 발생하지만 내 은하 탭 10.1에서는 눈에 띄는 문제가 없습니다. 나는이 줄을 주석 경우 두 장치에 아무 문제도 없다 :

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 

현재 자른 버튼을 볼 수 있습니다

enter image description here

사람이 비슷한 문제가 있었나요? 그렇다면 어떻게 해결 되었습니까?

EDIT : 내 상태는 상태 표시 줄이 사라져도 화면이 여전히 위쪽으로 미끄러지는 동안 상태 표시 줄이 천천히 제거되고 어떻게 든 버튼이 화면에 배치되는 것입니다. .. 어쩌면이 아이디어는 붉은 청어 다.

답변

0

이 문제를 복제 할 수는 없지만 기능 순서를 변경해보십시오. 나는 이것이 일반적으로 암시할만한 것이 아니라는 것을 깨닫는다.

public void onCreate(Bundle savedInstanceState) { 

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
     WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
+0

그냥 그것을 시도하지만 버그에 차이를하지 : - ( – Mick

0

당신은 각 당신이해야 버튼 뭔가를해야만 등에, 버튼을 업데이트 할 onResume()에서 시도 할 수 있습니다 :

ViewGroup.LayoutParams params_btn1 = <params used to display programmatically the button> 
getWindowManager().updateViewLayout(button1, params_btn1); 
+0

) 런타임에 "java.lang.IllegalArgumentException : Params가 WindowManager.LayoutParams 여야 함"을 얻었습니다. – Mick

+0

죄송합니다 (위키 백과, 우리 모두의 백과 사전. 그걸로, 너 sa id는 버튼이 "프로그래밍 방식으로 생성되었습니다"이므로 가시성을 변경하거나 레이아웃을 업데이트하면 버튼이 올바르게 렌더링됩니다. 이거 해봤 니? – ALiGOTec