Для Activity у меня есть два разных файла макета для портретной и альбомной ориентации. Элементы одной ориентации имеют прямое отношение к элементам в другой ориентации, за исключением того, что они могут быть связаны базовым классом, но не являются одним и тем же типом и имеют одинаковый идентификатор. Так, например:
layout / main_layout.xml:
...
<ListView
android:id="@+id/current_news_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
, затем в layout-land / main_layout.xml: CustomListView является подклассом android.widget.AdapterView
...
<CustomListView
android:id="@+id/current_news_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
«IllegalArgumentException: неправильный класс состояния» выбрасывается при изменении ориентации. Это ожидаемое поведение? Я не переопределил код изменения конфигурации и позволяю полностью уничтожить и реконструировать действие. Я избегал других случаев одновременного наличия идентичных идентификаторов в иерархии макета.