Я пытаюсь получить ориентацию экрана в фрагменте Android с помощью getResources (). GetConfiguration (). Ориентация, но он возвращает тот же результат, хотя Я повернул устройство в портретный и альбомный режимы. Я также использовал в onConfigurationChanged () (см. Код ниже), и конфигурация, полученная в качестве параметра, сообщает об ориентации экрана corect, но общий метод получения ориентации экрана всегда сообщает тот же режим ориентации, в котором началась деятельность (альбомная или портретная) .
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
Log.e(TAG, "NEW CONFIG: ORIENTATION_LANDSCAPE");
else
Log.e(TAG, "NEW CONFIG: ORIENTATION_PORTRAIT");
Configuration config = getResources().getConfiguration();
if(config.orientation == Configuration.ORIENTATION_PORTRAIT)
Log.e(TAG, "config: PORTRAIT");
else
Log.e(TAG, "config: LANDSCAPE");
LayoutInflater inflater = LayoutInflater.from(getActivity());
populateViewForOrientation(inflater, (ViewGroup)getView());
}
Например, если действие было запущено в режиме ландшафта, первым выводом журнала будет:
1.a "НОВАЯ КОНФИГУРАЦИЯ: ORIENTATION_LANDSCAPE"
1.b "config: ПЕЙЗАЖ"
после поворота устройства в портретный режим:
2.a "НОВАЯ КОНФИГУРАЦИЯ: ORIENTATION_PORTRAIT"
2.b "config: ПЕЙЗАЖ"
Как вы можете заметить, конфигурация сообщает об одном и том же режиме ориентации, хотя устройство имеет другой режим ориентации.
Так что же здесь происходит? Спасибо! :)