Dialog를 상속 받아 커스텀 다이얼로그를 만들어 띄웠습니다.
ScrollLayout로 View를 만들어 다이얼로그를 나타냅니다.
이상태에서 가로 상태에서 다이얼로그를 띄우면, 세로 스크롤이 나타납니다.
여기서 화면을 세로로 로테이션 하면, 화면이 길어 스크롤이 사라집니다.
이상태에서 다시 화면을 가로로 돌리면, 스크롤이 없는채로 아래부분이 가려진 상태로 화면에 보여집니다.
문제를 어떻게 해결해야할까요?
다이얼로그를 다시 그려주어야 하나요?
어떻게 해야 로테이션 시에 스크롤이 다시 나타날까요?
View를 리스트로 만들어야할까요?
로테이션시 화면에 있던 다이얼로그는 정상적으로 죽으면(?) onResume()를 호출하고 죽임을당하면(?) 죽을때 상태를 Bundle로 저장하고onsaveInstanceState()를 호출합니다.
화면회전으로 강제로 죽임을 당했으니 onssavaInstanceState() --> onCreate(Bundle savedInstanceState) 를 호출합니다. 그러니 public
void
onCreate(Bundle savedInstanceState) {
if(savedInstanceState != null){
다이얼로그 가로나 세로에 맞게 새로 띄우고 뷰 작업(가로 세로 가각의 xml 화일)
}
super
.onCreate(savedInstanceState);
setContentView(R.layout. ); //메인의 액티비티도 같이 가로 세로 관련 작업을 해야할거 같네요
}
요런식으로 넣는게 아닐까 합니다.안드로이드의 생명주기와 관련된 문제인거 같네요.
답변 감사드립니다. 화면 로테이션 시 진행중이던 스레드가 죽는 관계로 메인 액티비티에서 화면 그대로 돌아가게 설정을 해놔서,
다이얼로그가 최초 생성 시에만 onCreate를 탑니다. 이것 때문에 다이얼로그가 죽지 않고 그대로 보여집니다.
이와 같은 상태에서 화면이 돌아가는 상태를 뭘로 체크해야하며, 어디서, 어떻게 새로 그려주어야할까요?