2013-10-30 2 views
-1

프로젝트를 진행 중입니다. 나는 스크린 오리엔테이션과 풍경을 사용했다. 또한 android:configChanges="keyboardHidden|orientation|screenSize"을 사용하여 방향 전환시 활동이 새로 고침되지 않도록하십시오.Android 방향 변경

이제 configChanges = "orientation"을 사용할 때 app에서 layout-port-> layout-land xml 레이아웃으로 전환 할 수 없습니다.

Landscape-> portrait 또는 portrait-> Landscape에서 전환 할 수 있지만 layout-port-> layout-land 또는
layout-land-> layout에서 전환하지 않고 두 방향에서 layout-port xml을 표시 할 수 있습니다. -포트.

+0

당신은 방향 변경을 처리하기 위해 android : configChanges = "keyboardHidden | orientation | screenSize"를 사용합니다. onSaveInstanceState 및 onRestoreInstanceState를 확인하십시오. –

+0

하자. 'android : configChanges = "orientation"'해킹입니다. 매우 특별한 경우에만 사용해야합니다. 왜 나쁜지 (매우 나쁨)에 대해 검색하면 많은 토론이 있습니다. 즉, 다른 시나리오에서 나중에 나타날 버그를 은폐합니다. 올바른 대답은 활동 라이프 사이클과 그에 따른 코드를 학습하는 것입니다. 이 해킹은 코드에서 여전히 발견되는 문제를 은폐하는 게으른 사람들의 방법입니다. – Simon

답변

0

추가 AndroidManifest를 파일에서 UR 활동

inside of oncreate() 
if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE) 
     setContentView(R.layout.land); 
else if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) 
     setContentView(R.layout.port); 



@Override 
public void onConfigurationChanged(Configuration config) { 
    super.onConfigurationChanged(config); 


    if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     setContentView(R.layout.land); 
    } else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     setContentView(R.layout.port); 
    } 
} 
+0

레이아웃 및 레이아웃 랜드를 사용하고 있지만 레이아웃 랜드로 전환하지 않고 랜드 및 포트보기의 레이아웃 XML을 표시하고 있습니다. – user2775735

0

android:configChanges="orientation"을이를 추가하고이 방향을

0

노력이

변화를 처리 할 활동을 위해 다른 두를 제거 android:configChanges="keyboardHidden|orientation|screenSize"

~ android:configChanges="orientation"

매니 바난 자신의 응답을의

@Override 
public void onConfigurationChanged(Configuration config) { 
    super.onConfigurationChanged(config); 


    if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     //set your landscape layout 
    } else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     //the same for portrait layout 
    } 
} 

에 대해 설명처럼

및 활동에 0, onConfigurationChanged 메도에게

우선합니다.

+0

고마워 ... 내가 당신을 따라 ... 안드로이드 만 사용하는 경우 : configChanges = "오리엔테이션"오리엔테이션 변경에 대한 액티비티 리로드 ... 오리엔테이션 변경시 액티비티를 다시로드하지 않겠습니까 – user2775735

+0

android에 screenSize를 추가하는 것보다 : configChanges –

+0

if screenSize를 더하면 작동하지 않습니다. – user2775735