portait/landscapeで異なるレイアウト構造で表示したい
portrait時は固定レイアウト, landscape時はスクロール可能なナビゲーションメニューを実装したいのですが愚直にlayout, layout-landで分けても下記エラーが出てしまいます。
Wrong state class, expecting View State but received class android.widget.ScrollView$SavedState instead.
This usually happens when two views of different type have the same id in the same hierarchy.
This view's id is id/drawer_nav. Make sure other views do not use the same id.
このような場合の解決策がありましたらご教示ください。
layoutファイルは下記になります。
layout/drawer_nav.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/nav_container">
<RelativeLayout />
<LinearLayout />
</LinearLayout>
layout-land/drawer_nav.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView>
<LinearLayout android:id="@+id/nav_container">
<RelativeLayout />
<LinearLayout />
</LinearLayout>
</ScrollView>
両方共スクロール可能なレイアウトにするのが一番早いですが、portrait時のみ一部コンテンツをフッター固定したいため分けております。
よろしくお願いします。
【以下追記】
該当する部分のidを追記しました。
また呼び出し元のactivity layoutは以下です。
activity_top.xml(呼び出し元)
<include
android:id="@+id/drawer"
layout="@layout/drawer_nav"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"/>