AppBarLayout无法强制转换为android.support.design.widget.CollapsingToolbarLayout

问题描述 投票:0回答:1

我收到此错误:

Caused by: java.lang.ClassCastException: 
android.support.design.widget.AppBarLayout cannot be cast to 
android.support.design.widget.CollapsingToolbarLayout

这是我的xml文件:

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:id="@+id/collapsing"
    android:fitsSystemWindows="true"
    app:layout_scrollFlags="scroll|exitUntilCollapsed"
    app:contentScrim="#0e0d0e">

    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.NoActionBar"
        android:fitsSystemWindows="true"
        android:id="@+id/app_bar_layout">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="@null"
            app:layout_collapseMode="parallax"
            android:id="@+id/img_food"
            android:scaleType="centerCrop" />
        <android.support.v7.widget.Toolbar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_collapseMode="parallax"
            android:id="@+id/toolbar"
            app:title="Food Name">

        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

是什么导致了我的错误?我被重定向到这一行

collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing);

在我的活动文件中。

我使用的是Android Studio 3.0.1。

谢谢!

android android-collapsingtoolbarlayout android-appbarlayout
1个回答
0
投票

改变

collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing);

至 :

collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.app_bar_layout);

错误来了becoz您的布局ID在findViewById中不匹配

© www.soinside.com 2019 - 2024. All rights reserved.