화면이 회전 한 후 뷰 객체 중 하나의 높이가 변경되었으므로 높이 값을 픽셀로 알고 싶습니다.onConfigurationchanged() 메서드 이후에 호출되는 내용
onConfigurationChanged
메서드는보기 회전을 완료하기 전에 호출됩니다. 따라서이 메서드에서 뷰 크기를 측정하면 크기는 여전히 회전 값입니다.
문제는 순환 완료 후보기 크기 값을 어떻게 재구성하지 않고 작업을 재구성 할 수 있는가입니다.
화면이 회전 한 후 뷰 객체 중 하나의 높이가 변경되었으므로 높이 값을 픽셀로 알고 싶습니다.onConfigurationchanged() 메서드 이후에 호출되는 내용
onConfigurationChanged
메서드는보기 회전을 완료하기 전에 호출됩니다. 따라서이 메서드에서 뷰 크기를 측정하면 크기는 여전히 회전 값입니다.
문제는 순환 완료 후보기 크기 값을 어떻게 재구성하지 않고 작업을 재구성 할 수 있는가입니다.
한 가지 가능한 솔루션 :이 회전 후라고 때문에
private int viewHeight = 0;
View view = findViewByID(R.id.idOfTheView);
view.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener(){
@Override
public void onGlobalLayout() {
viewHeight = view.getHeight();
}
또는
@Override
public void onResume(){
int viewHeight = 0;
View view = findViewByID(R.id.idOfTheView);
viewHeight = view.getHeight();
}
답변을 주셔서 감사합니다. AndroidManifest.xml 파일에서 ** android : configChanges = "orientation | screenSize"**를 설정 한 후 onResume()이 실행되지 않을 것입니다. 나는 OnGlobalLayoutListener의 방법을 연구 할 것이다. – user2614801
'OnResume()'은 오리엔테이션 변경 사항 일 때 항상 호출됩니다. 왜냐하면 전체 Activity가 다시 생성되기 때문입니다. – g00dy
방금 회전에 대한 프로그래밍 가이드 기사를 다시 읽었습니다. API 레벨 12 이상에서는 구성 변경으로 활동이 다시 시작되지 않으며 참조 주소는 http://developer.android.com/guide/topics/resources/runtime-changes.html이 문서의 에 있습니다. 이 같은 단락 이제 이러한 구성 중 하나가 변경되면 MyActivity가 다시 시작되지 않습니다. 대신 MyActivity는 onConfigurationChanged()에 대한 호출을받습니다. ...... – user2614801
당신은 항상'OnResume()'방식으로이를 확인할 수 있습니다. – g00dy
안드로이드 : configChanges = "orientation | screenSize"를 AndroidManifest.xml 파일에 사용 했으므로 answer.it에 감사드립니다. OnResume() 메서드가 실행되지 않는 것 같습니다. OnResume에 중단 점을 설정했지만 비준 할 때 멈추지 않았습니다. – user2614801