2011-02-03 3 views
1

정말 한 가지 문제가 있습니다. 여러 화면을 지원하는 하나의 응용 프로그램을 개발 중입니다. 세 가지 레이아웃 (크고 작은, 중간)을 만들었습니다. 나는 그것을 시험하고있다. 두 개의 스크린으로 로그인하고 가입하십시오. 로그인하면 잘 작동합니다. 하지만 가입 버튼을 클릭하면 페이지에 가입하게됩니다. 만약 내가 초상화 모드에 있고 모드를 변경하면 앱이 추락하고 logcat에도 충돌보고 같은 것이 없습니다.Android 오리엔테이션 문제

이 경우 도와주세요.

감사합니다.

답변

1

매니페스트에 android:configChanges="orientation|keyboardHidden"과 같은 코드를 추가하지 않은 경우 모드를 변경하면 현재 활동 (가입?)이 다시 시작됩니다. 모든 정보가 활동에 사용 가능하지 않으므로 그 시점에서 활동을 다시 시작할 수없는 경우가 있습니다.

(BTW : 귀하의 질문은하지 완전히 분명하다,하지만 난 당신이 특정 활동 (세로/가로) 응용 프로그램 충돌 모드를 변경하는 경우 수집) u는 세로 N 풍경에 대해 서로 다른 화면을 사용하는 이유

0

기본적으로 구성을 변경하면 안드로이드가 활동을 다시 시작합니다. 이 재시작 (저장된 인스턴스 저장 및 복원) 또는 권장되지 않는 방법으로 onConfigurationChanged() 메소드를 올바르게 처리해야합니다.

0

응용 프로그램을 디버그 모드로 실행하십시오. 충돌이 발생하면 예외가 발생하여 문제가 발생합니다.

0

, 많은 우리는 다른 화면을 사용할 수 없습니다. 우리는 그런 식으로 코드를 작성했습니다. 두 화면 모두에 공통적 인 코드입니다.

ex. 레이아웃 매개 변수에서 너비에 "fill_parent"를 사용하면 두 경우 모두 효과적입니다

귀하의 경우 로그인 및 가입 양식을 만들고, 또한 로그인 및 가입 양식을 만들고 다른 것을 만들지 않습니다. 레이아웃 또는 화면.

두 모드 모두에 공통 화면을 만들 것을 제안합니다.

+0

코드는 공통적 일 수 있지만 공통적이어야합니다. 그러나 세로/가로 및 저/중/고밀도 화면에 다른 레이아웃을 사용하는 것이 옳습니다. 레이아웃의 유용성이 오리 엔테이션 (간단한 레이아웃의 경우 가능) 또는 밀도 (가능한 경우, 서로 다른 화면 밀도를 고려하여 조정 한 경우)로 인해 실제로 손상되지 않는 경우는 예외입니다. – RivieraKid