2011-09-12 4 views
1

가로/세로로 활동을 사용하고 싶습니다. 활동은 현재 방향 (즉, 활동을 시작하기 전에)에 대한 레이아웃으로 시작합니다. 그 다음에는 그것을 고수해야하고 방향 변경에 반응하지 않아야합니다.안드로이드는 현재 방향으로 레이아웃을 시작한 후 회전을 비활성화합니다.

나는 활동의 매니페스트에

android:configChanges="orientation" 

퍼팅 시도하고, 최우선

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
// TODO Auto-generated method stub 
    super.onConfigurationChanged(newConfig); 
} 

아무것도 (너무 슈퍼 호출을 주석했지만, 예외이 리드) 을 할 수 없습니다하지만이 회전 변경을 비활성화하는 효과가 없습니다. 변경 사항이 처리되고 레이아웃이 재구성됩니다. 올바른 변경 사항을 사용하지 않습니다.

그리고 내가 항상에 대해 하나의 모드를 지정해야 할 것, 그리고 그 나도 필요한 아니니까 나는

android:screenOrientation 

을 사용할 수 없습니다. 어쨌든, 내가 뭔가를 지정하면, 회전 할 때 활동이 재구성됩니다. 여기 코드 http://www.samcoles.co.uk/mobile/android-lock-and-unlock-screen-orientation/

와 현재 방향의 잠금 거기에 아무것도에게

하지 않는

android:screenOrientation="nosensor" 

으로 시도하지만 XML의 방향을 지정하는 것과 같은 효과를 얻을 수 (레이아웃을 유지하지만, 활동을 재구성). 그것은 내가 원하는 것 (시작부터 방향 유지)에 조금 더 가깝지만 활동을 재구성하고 전혀 반응하지 않기를 바란다.

+0

이 추가 시도? 가로 방향을 고수 할 수 없었습니다. 단지'android : configChanges = "orientation"'onConfigurationChanged'를 재정 의하여 플러스 (override)하면이 효과가 있었기 때문에 정원사 노릇을하는 XML이 선택되지 않게되었습니다. – Azurespot

답변

1

android : configChanges = "orientation"은 에뮬레이터에서 전혀 작동하지 않지만 장치에서는 정상적으로 작동합니다.

+0

에뮬레이터를 사용하고 있습니다. 현재 어떤 기기에서도 테스트 할 수 없습니다. – Ixx

+0

나는 동일한 문제를 겪었습니다. 그것은 에뮬레이터에 대해 작동하지 않았지만 여러 전화를 시도하고 잘 작동 – superM

0

는 해결책을 찾았나요

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    newConfig.orientation = getResources().getConfiguration().orientation; 
    super.onConfigurationChanged(newConfig); 
} 
+0

이것은 레이아웃을 유지하지만 작동은 재구성됩니다. – Ixx

0

가에서 onCreate

if (this.getResources().getConfiguration().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){ 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);} 
     else {setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);} 
관련 문제