응용 프로그램이 세로 모드로만 실행되도록 설정하려면 어떻게합니까? 응용 프로그램이 실행되는 동안 가로 모드를 비활성화하고 싶습니다. 프로그래밍 방식으로 어떻게합니까?
답변
모든 안드로이드 버전
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"