Xml не переключается при изменении ориентации устройства

Я создал две папки, res/layout и res/layout-land

Выход, который я получил
Если я запускаю приложение в portrait режиме, он всегда будет использовать xml в папке layout если приложение запускается в portrait режиме. И не будет использовать xml в layout-land если я переключу устройство в landscape режим
Если он начинается в landscape режиме, он использует только xml в layout-land
Xml не переключается при изменении ориентации

Я ожидал, что
Он должен использовать xml в папке layout когда он находится в портретном режиме, и использовать xml в макете в ландшафтном режиме

В файле манифеста я добавил android:configChanges="orientation" для активности и

 <supports-screens android:resizeable="true" android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" /> 

Я что-то пропустил? Какие изменения мне нужно сделать здесь?
Спасибо

Solutions Collecting From Web of "Xml не переключается при изменении ориентации устройства"

Код манифеста

 android:configChanges="orientation|screenSize" 

Игнорирует XML в «макете» и использует тот, который находится в папке «layout». Если вы создаете другой XML для ландшафта , не используйте android:configChanges="orientation|screenSize" для этой активности.

Android: configChanges = «ориентация» останавливает активность при перезапуске, поэтому также перезагружает компоновку xml (обычно вы делаете это в onCreate). Вместо этого вызывается onConfigurationChanged (newConfig). Таким образом, вы можете:

 @Override public void onConfigurationChanged(Configuration newConfig){ super.onConfigurationChanged(newConfig); setContentView(R.layout.<xml file>); } 

Это приведет к перезагрузке макета из макета-земли, если таковая имеется. Примечание: вам также нужно будет связать действия с кнопками и такими вещами

 private void setContentBasedOnLayout() { WindowManager winMan = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); if (winMan != null) { int orientation = winMan.getDefaultDisplay().getOrientation(); if (orientation == 0) { // Portrait setContentView(R.layout.alertdialogportrait); } else if (orientation == 1) { // Landscape setContentView(R.layout.alertdialoglandscape); } } } 

Не забудьте включить Settings -> Display -> Auto-rotate screen .