2012-06-28 2 views
1

두 개의 폴더 레이아웃을 만들고 세로 및 가로로 두 개의 XML 파일로 레이아웃 랜드를 작성했습니다. 두 xml 모두 작동하지만 여기에 문제가 있습니다.가로 및 세로 모양의 Android 앱

첫 번째 화면은 로그인 화면이고 두 번째 화면은 기본 화면입니다. 내가 세로로 로그인 한 다음 기본 화면에서 내 전화 프리젠 테이션을 돌리면. 레이아웃은 가로로 바뀌지 만 기본 화면에는 세로 xml이 사용됩니다.

가로로 시작하여 나중에 세로로 이동하려고하면 같은 오류가 발생합니다.

내 메인에 대한 레이아웃이 다른 것처럼 보이며 나머지 레이아웃에 사용되는 레이아웃입니다. 이 문제를 해결할 여지가 있습니까?

또한. 나는 이미 활동에 대한 내 매니페스트에서 android : configChanges = "오리엔테이션"을 사용하고 있습니다.

답변

2

android:configChanges="orientation"을 사용하는 경우 구성 변경 후 onConfigurationChanged을 재정 의하여 새로운 레이아웃을 확장 할 수 있습니다.

@Override 
protected void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig);     
    setContentView(...); 
} 

은 당신이 방향 변경에 재현되는 활동을 방지하기위한 좋은 이유가 있는지 확인 ... 그리고 방향 변경 앱 충돌하기 때문에 가장 중요한 것은 단지 그것을하지 않습니다. 시스템이 자동으로 적용되지 않기 때문에 구성 변경을 직접 처리하면 대체 자원을 사용하는 것이 훨씬 더 어려워 질 수 있습니다. 이 기술은 구성 변경으로 인해 다시 시작하지 않아야하며 대부분의 응용 프로그램에 권장되지 않을 때 최후의 수단으로 고려해야합니다.

2

android:configChanges="orientation"을 사용하면 코드의 방향 변경을 처리하게됩니다. 레이아웃을 자동으로 전환하려면 레이아웃이 필요하지 않습니다.

+1

'configChanges'값은 안드로이드의 구성 변경 처리를 우회하는 것을 의미합니다 (xml 파일을 전환하는 부분). 이를 제거하면 새로운 오리엔테이션을 위해 xml 파일을 사용하여 활동이 종료되고 다시 생성된다는 사실을 알고 있어야합니다. –

+0

그래, 내가 죽이고 다시 만들어지기 싫어서 내가 거기에 있었던 이유 야. 그래서 ... 내가하고있는 일이 잘못되었다는 것을 이해하지만 여기에서 어디로 가야할지 모르겠다 – user1424489

+0

처음에는'configChanges'를 사용해야 할 이유가 있습니까? 왜 그것을 사용하고 있습니까? –

0

두 개의 다른 폴더에있는 두 xml 파일의 이름이 같은지 확인하십시오.