응용 프로그램이 화면 방향 변경을 무시하도록하는 방법은 무엇입니까?
응용 프로그램이 화면 방향 변경을 완전히 무시하도록하는 방법이 있습니까?
매우 쉽게 기본 동작을 무시하고 키보드가 열리거나 닫힐 때 화면 방향 변경을 금지 할 수 있습니다.
매니페스트 수정
매니페스트를 열고 애플리케이션 탭으로 전환 한 다음 방향 변경 동작에 대해 재정의하려는 원하는 활동을 선택합니다.
속성 내에서 두 필드를 변경해야합니다. 화면 방향 : 세로 또는 가로 중 원하는 것을 선택합니다. 이것이 기본 레이아웃입니다.
재정의하려는 구성 변경에 대한 이벤트 선택 :이 경우에는 keyboardHidden 및 orientation이 있습니다.
활동 구현 수정
이제 원하는 활동 내에서 단일 기능을 재정의해야합니다.
활동 클래스에 아래 함수를 추가하기 만하면됩니다.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
Source->Override/Implement Methods
메뉴 옵션을 사용하는 경우 이것이 기본 구현 입니다.
그게 다야! 이제 오리엔테이션은 항상 유지됩니다.
이 설정은 활동별로 적용되므로 방향 변경을 금지하려는 각 활동에 대해이 단계를 반복해야합니다!
(SDK 1.1 기준)
다음 줄 (활동에서 호출 됨)을 사용하여 코드에서 동일한 변경을 수행 할 수 있습니다.
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
이 호출을하면 애플리케이션이 가로 (또는 세로) 모드로 유지됩니다. 동일한 호출 (다른 ActivityInfo 열거 형 사용)을 사용하여 방향 전환에 다시 민감하게 만들 수 있습니다.
Developing Orientation-Aware Android Applications 항목에 대한 전체 DevX 기사가 있습니다.
(경고 :이 링크를 게시 한 이후 DevX는 등록 벽을 세웠습니다.)
에 의해 AndroidManifest.xml
또는 함께 설정하는 경우 태블릿setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
에 문제가 발생할 것입니다 . 자연 / 기본 방향은 가로입니다.
화면 방향 변경 을 완전히 무시 하려면이 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
값을 사용 합니다. Stack Overflow 질문 Android natural sensor orientation help 에서 자세히 설명합니다 .
다음은 xml입니다.
<activity
android:name=".MyActivity"
android:screenOrientation="nosensor"
android:configChanges="orientation|keyboardHidden|keyboard"/>
다음 AndroidManifest.xml
과 같이 파일 에서 활동을 정의 할 수 있습니다 .
<activity
android:name=".MyActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|keyboard"/>`
이 경우 각 활동에 대한 속성을 설정해야합니다. 모든 애플리케이션에 대한 인라인 솔루션을 찾지 못했습니다.
<activity android:screenOrientation="portrait"></activity>
활동에 다음을 추가하십시오.
android:configChanges="orientation|screenSize"
현재 방향을 읽고 모든 활동의 수명 동안 이런 방식으로 유지하려고하므로 onCreate가 끝날 때 다음과 같이했습니다.
// choose an orientation and stay in it
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
else if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
'program tip' 카테고리의 다른 글
Promise에서 여러 값을 올바르게 반환하는 방법은 무엇입니까? (0) | 2020.11.11 |
---|---|
iOS 10 / Xcode 8의 장치에서 NSLog가 잘리는 것처럼 보입니까? (0) | 2020.11.11 |
Android의 여러 MIME 유형 (0) | 2020.11.11 |
어떤 Linux IPC 기술을 사용해야합니까? (0) | 2020.11.11 |
VS2010 프로젝트에 파일을 포함하여 빌드 또는 게시 중에 자동으로 빌드 출력 디렉토리에 복사하는 방법 (0) | 2020.11.11 |