안드로이드 개발 질문/답변
(글 수 45,052)
OnCreate 된 다음
다음과 같이 OnConfigurationChanged 로 화면 전환시 화면을 따로 구성하려 하려합니다.
문의점은
1. Landscape 가로모드일때 타이틀을 없애려면 어떻게 해야할까요?
2. 아래 코드처럼 적용하면 가로일때는 statusbar가 없어지는데 다시 세로로 세우면 titlebar까지 없어져서 나옵니다.
물론, 다시 화면을 부르면 타이틀과 상태바가 다시 보입니다.
OnConfigurationChanged 이후 화면을 구성하는놈은 누군지요?
다시 OnCreate로 불리는것 같지는 않는데 말이죠..
3. 가로 세로 레이아웃을 달리 하려면 아래코드에서
각각을 다시 코딩해야하는지요? XML로 구성 가능한지요?
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
getWindow().setFlag (WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView();
}
else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{
getWindow().setFlag(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
setContentView();
}
}
다음과 같이 OnConfigurationChanged 로 화면 전환시 화면을 따로 구성하려 하려합니다.
문의점은
1. Landscape 가로모드일때 타이틀을 없애려면 어떻게 해야할까요?
2. 아래 코드처럼 적용하면 가로일때는 statusbar가 없어지는데 다시 세로로 세우면 titlebar까지 없어져서 나옵니다.
물론, 다시 화면을 부르면 타이틀과 상태바가 다시 보입니다.
OnConfigurationChanged 이후 화면을 구성하는놈은 누군지요?
다시 OnCreate로 불리는것 같지는 않는데 말이죠..
3. 가로 세로 레이아웃을 달리 하려면 아래코드에서
각각을 다시 코딩해야하는지요? XML로 구성 가능한지요?
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
getWindow().setFlag (WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView();
}
else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{
getWindow().setFlag(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
setContentView();
}
}
2010.11.17 15:35:21
고맙습니다만 참고했던 내용이네요.
내용중에
switch(newConfig.orientation) {
case Configuration.ORIENTATION_PORTRAIT:
//--- 수작업으로 세로 화면 생성
break;
case Configuration.ORIENTATION_LANDSCAPE:
//--- 수작업으로 가로 화면 생성
break;
}
부분에서 land로 갔다 다시 portrait로 갈경우 초기의 화면 구성 xml과 충돌이 일어나지 않나요?
2010.11.17 16:24:16
/res/layout-port
/res/layout-land
이렇게 layout의 xml을 구분해서 넣을수가 있습니다.
파일명이 동일하면(리소스 id가 같겠죠) 알아서 port나 land를 구분해서 꺼내갑니다.
2010.11.17 17:04:31
가로는 풀스크린으로 보기만 / 새로는 버튼등을 통한 입력을 받도록 했습니다.
따라서 layout은 달라져야 하는데
Activity 내부에서
onCreate 한다음 onConfigurationChanged을 이용하여 가로일때의 화면만 새로 구성하면
세로로 돌아올때는 처음 화면이 안나오고 있습니다.
혹시 intent를 사용하여 화면을 다시 부르게 할까요?
따라서 layout은 달라져야 하는데
Activity 내부에서
onCreate 한다음 onConfigurationChanged을 이용하여 가로일때의 화면만 새로 구성하면
세로로 돌아올때는 처음 화면이 안나오고 있습니다.
혹시 intent를 사용하여 화면을 다시 부르게 할까요?
2010.11.17 17:07:33
layout-land 폴더에 같은 이름으로 새로운 layout을 구현하면
Land layout의 onCreate 관련 코드는 어떻게 구현해야하나요???
Land layout의 onCreate 관련 코드는 어떻게 구현해야하나요???
2010.11.17 18:44:37
포트에서 사용하던 버튼중 일부를
랜드에서는 사용안하고, 타이틀바 상태바를 없애고 Full Screen으로 보이게 하려는데
OnCrete부분도 수정해야하지 않나요?
onConfigurationChanged 를 사용하듯이..




가로모드 xml과 세로모드 xml을 별개로 설정해 줄 수 있지요
http://0929smj.blog.me/110097068289