猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
如何仅将整个应用程序设置为纵向模式?
如何设置它,使应用程序仅在纵向模式下运行?我希望在应用程序运行时禁用横向模式。如何以编程方式进行?
噜噜哒
浏览 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(因此,当您只需要其中一个方法时,就不必重写该接口的每个方法)。
0
0
0
喵喵时光机
是的,您可以通过编程方式以及所有活动来执行此操作,以使AbstractActivity扩展所有活动。public abstract class AbstractActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); }}此抽象活动也可以用于全局菜单。
0
0
0
九州编程
您可以为整个应用程序执行此操作,而不必使所有活动都扩展一个公共基类。首先,要确保您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); } .... }); }}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Android
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续