安卓系统上的活动方向会自动更改
2022-09-02 00:48:17
我正在开发一个基于Android的移动应用程序。我想支持平板电脑的两种方向,也只支持智能手机的纵向。一切都像一个魅力,但我正在经历一个小错误,让我发疯。当智能手机处于横向模式时,我尝试触发新的活动,它会在横向模式下打开一段时间,然后自动旋转到纵向。我的每个活动都扩展了一个 GeneralActivity 类:minSdkVersion=15
public class GeneralActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// If smartphone lock orientation to portrait
if (!Helper.isTablet(this.getApplicationContext())){
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
}
我使用此功能检测平板电脑:
public class Helper {
public static boolean isTablet(Context context){
Configuration config = context.getResources().getConfiguration()
return config.smallestScreenWidthDp >= 600;
}
}
我选择不在 Manifest 中指定.xml因为通过这种方式,我能够支持平板电脑的所有界面方向。我错过了什么吗?android:screenOrientation
编辑
我决定应用Jonathan在答案中建议的最佳实践,但我描述的问题仍然存在。这是我在github上的存储库:https://github.com/giacmarangoni/Android-Orientation-Test