응용 프로그램이 세로 모드로만 실행되도록 설정하려면 어떻게합니까? 응용 프로그램이 실행되는 동안 가로 모드를 비활성화하고 싶습니다. 프로그래밍 방식으로 어떻게합니까?
답변
모든 안드로이드 버전
XML에서
android:screenOrientation="portrait"manifest.xml 파일에서 각 활동에 대해 지정할 수 있습니다 . application태그 에는이 옵션을 지정할 수 없습니다 .
자바에서
다른 옵션은 프로그래밍 방식으로 수행하는 것입니다 (예 Activity: 기본 클래스).
@Override
public void onCreate(Bundle savedInstanceState) {
  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Android 4 이상 (API 14 이상)
마지막 옵션은 Android 4.0 (API 14+) 이후에만 사용할 수있는 활동 라이프 사이클 리스너로 수행하는 것입니다. 모든 것은 커스텀 Application클래스 에서 발생합니다 :
@Override
public void onCreate() {
    super.onCreate();
    registerActivityLifecycleCallbacks(new ActivityLifecycleAdapter() {
        @Override
        public void onActivityCreated(Activity a, Bundle savedInstanceState) {
            a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
    });
}
ActivityLifecycleAdapter는 빈 구현이 될 생성해야 할 도우미 클래스 일뿐입니다 ActivityLifecycleCallbacks(따라서 단순히 인터페이스 중 하나가 필요할 때 해당 인터페이스의 모든 메소드를 재정의 할 필요는 없습니다).
답변
예, 프로그래밍 방식과 모든 활동 모두 에서이 작업을 수행하여 모든 활동이 확장되는 AbstractActivity를 만들 수 있습니다.
public abstract class AbstractActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
}
이 추상 활동은 글로벌 메뉴에도 사용할 수 있습니다.
답변
모든 활동을 공통 기본 클래스로 확장 하지 않고도 전체 애플리케이션에 대해이를 수행 할 수 있습니다 .
트릭은 먼저 Application프로젝트에 서브 클래스 를 포함시키는 것 입니다. 에서 onCreate()앱이 처음 시작될 때 호출되는 ActivityLifecycleCallbacks활동 수명주기 이벤트 알림을 수신 하도록 객체 (API 레벨 14+)를 등록 합니다.
이렇게하면 때마다 자신의 코드를 실행할 수있는 기회를 제공합니다 모든 앱에서 활동이 시작 (또는 중지 또는 재개, 또는 무엇이든)됩니다. 이 시점 setRequestedOrientation()에서 새로 생성 된 활동을 호출 할 수 있습니다 .
class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // register to be informed of activities starting up
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity,
                                          Bundle savedInstanceState) {
                // new activity created; force its orientation to portrait
                activity.setRequestedOrientation(
                    ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }
            ....
        });
    }
}
답변
매니페스트 파일에서이를 설정할 수 있습니다.
android:name=".your launching activity name"
android:screenOrientation="portrait"
클래스 파일에 다음과 같이 코드를 작성하여 동일하게 달성 할 수도 있습니다.
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
답변
AndroidManifest.xml의 활동에 android : screenOrientation = “portrait”를 추가하십시오. 예를 들면 다음과 같습니다.
<activity android:name=".SomeActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait">
답변
사용하다:
android:screenOrientation="portrait" 
세로 모드로만 표시하려는 각 활동의 응용 프로그램 매니페스트 파일에이 줄을 작성하십시오.
답변
모든 활동에 대해 매니페스트 파일에 이것을 작성하십시오.
android:screenOrientation="portrait"