2012-02-16 5 views
3

가로 모드에서 항상 시작해야하는 활동이 있습니다. 내 onCreate() 메서드에서는 인터페이스의 설정을 위해 화면의 크기 (너비 및 높이)를 사용하므로 처음에는 작업이 잘못된 방향으로 만들어지지 않는 것이 중요합니다.태블릿에서 가로 모드 강제 설정

<activity android:name="app.myapp.WideActivity" 
    android:screenOrientation="landscape" 
    android:configChanges="keyboardHidden|orientation" 
    android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"/>    

이 활동에서 시작됩니다 (안드로이드 3.1, 삼성 갤럭시 탭) 내 휴대 전화에 완벽하게 잘 작동하는 것 같다,하지만 내 태블릿에 :

은 내가 매니페스트에 다음과 같은 한이 작업을 수행하려면 세로 모드로 전환하고 거의 즉시 방향을 전환합니다 ( onCreate() 방법 이후 - 보인다). 내 휴대 전화 (android 2.3)에서는 onCreate() 메서드가 호출되기 전에 화면이 이미 가로로 표시됩니다.

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 을 onCreate() 메소드에 넣는 것이 도움이되지 않는 것 같습니다. 내가 뭘 하려는지 어떻게 성취 할 수 있니?

답변

0

정확한 문제를 해결할 수 있는지 확실하지 않습니다. 그것은 나를 위해 문제가 삼성의 활동/창 관리 프레임 워크 부분의 구현에있는 것 같습니다. 그러나 렌더링을 지연하여 엉뚱한 UI가 나타나지 않도록 할 수 있습니다.

onCreate()에서 일부 기본 레이아웃을 표시합니다. 전체 화면으로 확장 된 일반 검정 레이아웃입니다. onResume()에서 화면 방향을 확인합니다. 가로가 아닌 경우 레이아웃 (setContentView (my_UI))을 적용 할 지연 실행 파일을 게시합니다.실행 파일의 내부에서 화면 방향이 가로 방향인지 확인하고 방향이 여전히 세로 방향 인 경우 실행 파일을 다시 게시합니다. 그렇지 않으면 UI를 설정합니다.

+0

답변 해 주셔서 감사합니다. 그것은 이상한 행동처럼 보입니다. 초상화를 올바르게 다루지 만 풍경이 아닌 것처럼 보입니다. 내 응용 프로그램에 대한 방금 오리 엔테이션을 확인하고 필요할 경우 높이와 너비 값을 바꿀 수 있다고 생각합니다. 내 활동이 올바르게 표시됩니다. –

+0

사실, 이제 생각해 봅시다.'configChanges = "orientation"'을 제거하면 장치가 방향을 전환하고 UI가 스스로 고칠 때 onCreate() 메서드가 다시 호출됩니다. onCreate 메소드에서 체크를 추가하고 세로 모드에서 UI를 전혀 그릴 수 없습니다. –