Android 纵向和横向

Android Portrait and landscape

我将我的应用程序锁定为移动设备的纵向模式和电视的横向模式。问题是,我想在整个应用程序上使用它。我的应用程序中有多个活动,所以我必须检查每个 activity 的纵向和横向。有没有办法让我的代码在所有活动中都是全局的?我不想在每个 activity.

中编写该代码

这是我的代码:

我以前用过这个:

setContentView(R.layout.activity_main);

MainActivity.java

// locking out landscape screen orientation for mobiles
if(getResources().getBoolean(R.bool.portrait_only)){
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

// locking out portrait screen orientation for TV
if(getResources().getBoolean(R.bool.landscape_only)){
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

创建BaseActivity,将此函数添加到其中,您的活动将扩展BaseActivity。

对于 MainActivity 以外的所有活动,您可以在清单文件中将 screenOrientation 设置为 'behind'

这使得所有的活动都与后面的方向保持一致activity。因此,如果您已经锁定了 MainActivity 的方向,那么从 MainActivity 启动的所有 Activity 将保持与 MainActivity 相同的方向。

横向和纵向模式下不同视图的位置显示不同。如果你对改变的位置没问题,那就没关系。否则,有时位置会发生巨大变化,以至于布局看起来不太好,这就是为什么您必须为纵向和横向模式手动安排视图。