如何在小屏幕布局上禁用横向

Bit*_*ith 4 java layout android landscape

我允许所有可能的方向为我的应用程序的肖像和风景(小 - 正常 - 大 - xlarge),但在小屏幕上测试后,我只是不喜欢它是如何出现所以,我正在尝试do是禁用小布局的横向.有没有办法做到这一点 ?

我发现只是对清单文件进行了更改,但我相信通过重新配置清单,我会将更改应用于所有布局.

Nac*_*chi 9

最简单的方法是将它放在onCreate()所有活动的方法中(更好的是,将它放在BaseActivity类中并从中扩展所有活动)

@Override
protected void onCreate(Bundle bundle) {
   super.onCreate(bundle);

   if (isLargeDevice(getBaseContext())) {
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
   } else {
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
   }
}
Run Code Online (Sandbox Code Playgroud)

您可以使用此方法检测设备是手机还是平板电脑:

private boolean isLargeDevice(Context context) {
        int screenLayout = context.getResources().getConfiguration().screenLayout;
        screenLayout &= Configuration.SCREENLAYOUT_SIZE_MASK;

        switch (screenLayout) {
        case Configuration.SCREENLAYOUT_SIZE_SMALL:
        case Configuration.SCREENLAYOUT_SIZE_NORMAL:
            return false;
        case Configuration.SCREENLAYOUT_SIZE_LARGE:
        case Configuration.SCREENLAYOUT_SIZE_XLARGE:
            return true;
        default:
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)