4

Android 애플리케이션을 빌드하고 다른 방향의 레이아웃을 추가하고 싶습니다. 나는 레이아웃 랜드 폴더를 만들고 거기에 첫 번째 스타터 액티비티 "myStartActivity"(두 오리엔테이션에 대해 이전에 사용한 레이아웃과 동일한 이름으로)에 대해 다른 레이아웃을 지정합니다.Android : 액티비티 내 화면 회전이 세로/가로 레이아웃으로 바뀌지 않음

내 화면 방향에 따라 앱을 시작하기 전에 올바른 레이아웃이 선택됩니다. "레이아웃"폴더 내에서 "myLayout.xml"을 선택합니다. 세로에서 시작하고 "레이아웃"내에서 "myLayout.xml" - 랜드 "- 내가 풍경에서 시작할 때 폴더.

문제는 이미 액티비티에있을 때 장치를 회전 할 때 회전 후에 새 레이아웃을 얻지 못한다는 것입니다. 예 : 세로에서 가로로 회전하면 여전히 "레이아웃"- 폴더가 아니라 "레이아웃 - 랜드"- 폴더가 아닌 "myLayout.xml"이 표시됩니다.

OnConfigurationChange 메서드 또는 아무것도 덮어 쓰지 않았습니다. "myStartActivity"에서 수행하는 모든 작업은 일부 버튼을 인스턴스화하고 일부 청취자에게 제공합니다. 가로 방향의 다른 레이아웃을 사용하여 버튼의 순서를 변경하고 싶습니다. 당신이 무엇을 할 수 있는지

답변

0

이 그런 방향의 결과에 따라 Activity.getResources().getConfiguration().orientation

사용하는 것입니다, 당신의에서 OnCreate() 회전에 호출 방식으로 컨텐츠보기를 설정합니다.

protected void onCreate(Bundle savedInstanceState) { 
int result = this.getResources().getConfiguration().orientation; 
if (result == 1){ 
//set content view to portrait 
setContentView(R.layout.portrait); 
} 
else{ 
//set content view to landscape} 
setContentView(R.layout.landscape); 
} 

또는 case 문에 붙어 : 내 경우

3

을 나는 안드로이드가있을 때 설명 된 문제 만 발생 : configChanges = "오리엔테이션" 을 매니페스트에서 활동.

그렇지 않으면 회전 할 때 올바른 레이아웃이 자동으로 사용됩니다.

0

에뮬레이터에서만 테스트하는 경우 방향 변경 감지에 문제가있을 수 있습니다. 적어도 나는 그것을 경험했다.

관련 문제