2010-03-20 6 views
20

나는이 문제에 대해 몇 시간 동안 내 머리를 찼습니다. main.xml을 만들고 res/layout-land (landscape) 형식과 res/layout 형식으로 또 다른 형식을 디자인했습니다.화면 방향 풍경 뒤로 세로 방향으로 작동하지 않습니다.

에뮬레이터 (ctrl-F11)를 돌리면 올바른 main.xml을 사용하여 내 응용 프로그램이 가로 방향으로 올바르게 회전하지만 세로 방향으로 다시 회전하면 가로 방향 mail.xml 만 유지됩니다. 예상대로이 응용 프로그램이 제대로 작동으로

내 깜짝 회전,

이 despiration 중 내가 여러 해상도의 새로운 샘플 코드를 다운로드하고 새로운 2.1 AVD를 작성했다 .. 2.0 AVD에서 이루어졌다. 그래서 2.1 AVD에서 내 앱을 사용하기로 결정했는데 완벽하게 작동합니다.

그래서 2.0 AVD의 버그입니까? 아니면 < 2.1 SDK 버전에서해야 할 특별한 것이 있습니까?

아무도이 문제를 언급하지 않았기 때문에 이것은 나를 미치게합니다. 사전

+0

2.3.3 에뮬레이터에서 같은 것을 볼 수 있습니다 ... 1.6과 2.1은 잘 작동합니다 ... 테스트를 어렵게 만듭니다. – Jay

답변

3

에서

감사는 매니페스트에서

<activity android:name="MainActivity" android:configChanges="orientation"> 

를 지정하지 않으면, 나는 앱이 자동으로 올바른 layout.xml을 선택한다고 생각합니다. 그래서, 저에게 에뮬레이터의 버그처럼 보입니다. 어쨌든, 에뮬레이터가 다른 방법으로 버그가 있음을 발견했습니다. 전의. 방향을 다시 바꿀 때 코드를 두 번 실행합니다.

+0

방향을 변경하면 작업이 다시 만들어지고 onCreate() 메서드는 다음과 같습니다. 전체 활동을 다시 만드는 또 다른 호출. 그래서 버그가 아닙니다. – YuDroid

0

예, 에뮬레이터는 방향 변경시 약간 버그가 있습니다. 이 특정 문제는 경험하지 못했지만 때로는 이상한 일을합니다. 그러나 적어도 내 영웅에 v1.5와 함께 붙어 있고 xml 파일을 얻기 위해 올바른 레이아웃 폴더를 선택하여 오리 엔테이션 변경을 올바르게 처리했기 때문에 이것은 실질적으로 < 2.1 SDK의 실제 전화 번호로는 문제가되지 않습니다. 에서.

0

2.1 개발 만했는데 CTRL-F11 (이전 레이아웃 방향()으로 전환하고 변경 사항이 있는지 확인하기 위해 CTRL-F12 (다음 레이아웃 방향으로 전환) .이 Controlling the Emulator에서입니다.

또한, 당신이 무대 뒤에서 무슨 일이 일어나고 있는지 모니터링하기 위해 오버라이드 (override) 할 수 수명주기 방법은 여러 가지가있다. 즉, 에뮬레이터에서 버그가 있는지 여부를 알려 수 있습니다. 내가

1

Java Helios 용 Eclipse 및 Android 2.2를 사용하여 랩톱에서 이와 동일한 문제가 발생했습니다. 적어도 문제가 무엇인지 알았습니다. 때때로 랩톱에서 작동하지 않는 영역에서 작업합니다. 와이파이 그래서 나는 인터넷에 연결되어 있지 않으며 이것은이 문제를 일으키는 것 같다. 나는 wifi 핫스팟으로 가서 그것을 테스트하고, 물론, 초상화와 풍경 사이의 전환과 다시 잘 작동합니다. 어쩌면 에뮬레이터가 연결을해야만하거나 에뮬레이터의 버그 일 수 있습니다.

9

FWIW, 공식적으로 버그 here으로보고되었습니다.

+3

해결 방법은 인물 모드에있을 때 홈 버튼을 두드리면 중력 센서가 재설정됩니다. – StuTheDog

0

나는 또한 동일한 문제에 직면했다. 나는 그것을 해결했다. 나는 이것이 에뮬레이터 버그라고 생각하지 않는다. 나는 실제 전화기에서도 이와 같이 행동 할 것이라고 생각한다. 주된 이유는 활동이 상쾌하지 않다는 것입니다. 한 가지를 할 수 있습니다.

public void onConfigurationChanged(Configuration newConfig) { 
    // TODO Auto-generated method stub 
    super.onConfigurationChanged(newConfig); 
    startActivity(getIntent()); 
    finish(); 

} 

을 덮어 쓰고 현재 활동을 다시로드하십시오. 그것은 당신을 도울 것입니다.

4

새로운 Android 개발 환경을 설치하고 새로운 2.3.3 AVD를 만들었습니다. (팔과 x86 모두). 시스템 앱을 사용하더라도 두 가지 모두 동일한 문제가 있습니다. 코드에서 버그가 아니므로 시스템 앱에 동일한 문제가 발생합니다.

'홈'을 누르고 응용 프로그램을 다시 시작하면 다시 세로로 돌아갑니다.

관련 문제