DrawerLayout(使用FrameLayout)在方向更改时崩溃

时间:2014-02-18 14:49:03

标签: android layout

我已经成功实现了PagerSlidingTabStrip(它包含一个viewpager)。 然后,我把一个带有listview的DrawerLayout成功(yehh)。

然后,我用一个FrameLayout替换Listview,里面有一个片段,以便在我的抽屉里有一个片段。

它正在工作但是在方向改变时崩溃了。我不明白为什么。

这是工作的xml。

 <android.support.v4.widget.DrawerLayout               xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/theme_color" >

<!-- The main content view -->

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/blanccasse" >

    <com.astuetz.PagerSlidingTabStrip
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="48dip"
        android:background="@drawable/background_tabs" />

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tabs"
        android:layout_margin="5dp"
        tools:context=".MainActivity" />

</RelativeLayout>

 <!-- The navigation drawer -->
<ListView android:id="@+id/left_drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp"
    android:background="#111"/>    

 </android.support.v4.widget.DrawerLayout>

如果我用

替换listview
     <FrameLayout
    android:id="@+id/drawer_layout"
    android:layout_width="280dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@color/gris" >    

</FrameLayout>

它在方向变化时崩溃。

任何想法?感谢。

编辑:

logcat是: java.lang.RuntimeException:无法启动活动ComponentInfo {com.xxx.xxx/com.xxx.xxx.MainActivity}:java.lang.ClassCastException:android.view.AbsSavedState $ 1无法强制转换为android.support.v4.widget .DrawerLayout $ SavedState

1 个答案:

答案 0 :(得分:5)

android:id中的ID(DrawerLayout标记)与您用来替换id的{​​{1}}上的FrameLayout相同。