猿问

如何仅将整个应用程序设置为纵向模式?

如何设置它,使应用程序仅在纵向模式下运行?我希望在应用程序运行时禁用横向模式。如何以编程方式进行?



噜噜哒
浏览 475回答 3
3回答

蓝山帝景

对于任何Android版本从XML您可以android:screenOrientation="portrait"在manifest.xml文件中为每个活动指定。您不能在application标签上指定此选项。从Java另一种选择是以编程方式执行此操作,例如在Activity基类中:@Overridepublic void onCreate(Bundle savedInstanceState) {  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}对于Android 4+(API 14+)最后一个选择是使用活动生命周期侦听器执行此操作,此活动侦听器仅从Android 4.0(API 14+)起可用。一切都发生在自定义Application类中:@Overridepublic 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);            }            ....        });    }}
随时随地看视频慕课网APP

相关分类

Android
我要回答