안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
onConfigurationChanged()를 오버라이드하여
가로화면 시에는 타이틀바와 상태바를 없애고
세로화면 시에는 보이게 하려고 하는데
setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
효과가 나타나질 않습니다.
코드는
@Override
public void onConfigurationChanged(Configuration _newConfig) {
super.onConfigurationChanged(_newConfig);
if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
}
else
{
}
}
이렇습니다. 도와주세요.
2010.01.04 17:29:59
/** Hide TitleBar **/
requestWindowFeature(Window.FEATURE_NO_TITLE);
/** Hide StatusBar **/
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
2010.01.04 22:50:40
물론 이 코드는 해봤구요,,
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
이 코드는 잘 작동하였으나
requestWindowFeature(Window.FEATURE_NO_TITLE);
이 코드에서 런타임 에러가 납니다.
onCreate 메서드에선 에러가 나지 않지만, 위의 코드를 onConfigurationChanged 메서드에 넣으면 런타임 에러가 납니다.
2010.02.25 16:30:00
안녕 하세요,
위에 있는 requestWindowFeature(Window.FEATURE_NO_TITLE); 이 내용은, setContentView 를 하기 전에 호출 되어야만 적용이 될 수 잇는 부분 입니다.
따라서, onCreate 에서, window 의 orientation 을 체크 해서, notitile 로 할 지 말지를 결정 하거나, onConfigurationChanged 에서 처리 하려면, TextView 를 사용 해서, Title 처럼 사용 할 수 밖에 없습니다.
onCreate 에서 확인 하는 방법은,
getWindowManager ().getDefaultDisplay ().getOrientation ();
이렇게 하면 얻어 올 수 있는 것으로 압니다.
그리고, 테마 파라미터로 주것은 xml 기술해서 사용할 수도 있답니다.