Отследить поворот экрана

Для чего может пригодится отследить поворот экрана. Очень часто, нужно совершить какие-то действия при повороте экрана из вертикального в горизонтальный и обратно. Например если экран поворачивается в горизонт, нужно скрыть actionBar, так как рабочая часть экрана превращается в узкую полосочку и читать текст становится очень неудобно.

Вторая функция getScreenOrientetion получает на вход переменную config типа данных Configuration. И проверяет:

  • Если предоставленная переменная orientation равна Configuration.ORIENTATION_PORTRAIT возвращает булевую переменную true.
  • Если предоставленная переменная orientation равна Configuration.ORIENTATION_LANDSCAPE возвращает булевую переменную false.

Если первая функция, обращаясь ко второй функции получает false, то скрывается actionBar командой actionBar.hide();

Если первая функция, обращаясь ко второй функции получает true, то отображает actionBar командой actionBar.show();

В результате  нас получилось отследить поворот экрана и на основе этой информации принять решение о показе ActionBar.

//Отследить поворот экрана
// Если ориентация альбомная - скрывает actionBar
// Если ориентация портретная - показывает actionBar
@Override
public void onConfigurationChanged(Configuration newConfig) {
    if (!getScreenOrientation(newConfig)) actionBar.hide();
    if (getScreenOrientation(newConfig)) actionBar.show();
    super.onConfigurationChanged(newConfig);
}
 
// Возвращает Портретная=true, Альбомная=false
private boolean getScreenOrientation(Configuration сonfig){
    if(сonfig.orientation == Configuration.ORIENTATION_PORTRAIT)
        // Портретная ориентация
        return true;
    else if (сonfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
        // Альбомная ориентация
        return false;
    else
        return true;
}
Поделись с друзьями:

Оставьте комментарий