0

내 응용 프로그램에 대한 두 개의 레이아웃 파일 (res/layout 및 res/layout-land에서)을 만들었습니다. 하지만 내가 장치 방향을 바꿀 때 적절한 레이아웃 파일을 표시하지 않습니다. 두 레이아웃 모두 동일한 레이아웃 파일 (res/layout) 만 표시합니다. 랜드 스케이프 모드 레이아웃 파일을 가로 모드로 가져 오지 않는 이유는 무엇입니까? 또한 android : configChanges = "keyboard | orientation"을 매니페스트의 내 활동에 추가했습니다. 그 밖에 내가 뭘해야 해? 나는 안드로이드 앱 개발에 초보자이다.안드로이드의 화면 방향

답변

2

android:configChanges="keyboard|orientation"을 Manifest 파일에 추가하는 경우 레이아웃을 변경하지 않습니다.이 속성을 추가하면 활동이 다시 생성되지 않으므로 세로 모드와 동일한 레이아웃이 표시되기 때문입니다. 따라서 Manifest 파일에서 android:configChanges="keyboard|orientation"을 제거하여 작동되게하십시오.

작업을 다시 만들어서는 안되며 오리엔테이션이 바뀌면 레이아웃을 변경해야하는 경우 수동으로 레이아웃을 변경하기위한 코드를 추가해야합니다(). my answer here을 확인하십시오.

1

이 항목을 추가하지 마십시오. 매니페스트에서

android:configChanges="keyboard|orientation" 

..이 변화 방향을 처리에 대한 책임의 onConfigurationChanged 메소드의 호출을 ... 허용하지 않기 때문에 ... 매니페스트 당신에게서 그 라인을 제거하고는 ...

작동합니다