Не вариант, потому что тогда у вас такая же проблема на планшетах в альбомной
рабатываю мобильное приложение на базе Android сminSdkVersion=15
, Мне бы хотелось поддерживать обе ориентации для планшетов и только портретные для смартфонов. Все работает как шарм, но я испытываю небольшую ошибку, которая сводит меня с ума. Когда смартфон находится в ландшафтном режиме, и я пытаюсь запустить новое действие, он некоторое время открывается в ландшафтном режиме, а затем автоматически поворачивается в портретный режим. Каждое из моих занятий расширяет класс GeneralActivity:
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;
}
}
Я выбираю не указыватьandroid:screenOrientation
внутри Manifest.xml, потому что таким образом я могу поддерживать всю ориентацию интерфейса для планшетов. Я что-то пропустил?
РЕДАКТИРОВАТЬ
Я решил применить лучшую практику, предложенную в ответе Джонатана, но проблема, которую я описал, все еще здесь. Вот мой репо на github:https://github.com/giacmarangoni/Android-Orientation-Test