Для чего может пригодится отследить поворот экрана. Очень часто, нужно совершить какие-то действия при повороте экрана из вертикального в горизонтальный и обратно. Например если экран поворачивается в горизонт, нужно скрыть 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;
}