在使用CoordinatorLayout时出错

时间:2016-05-24 10:56:16

标签: android layout androiddesignsupport coordinator-layout bottom-sheet

我尝试在布局中添加底页,因此我将所有片段的布局放在CoordinatorLayout中:

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools">

    <RelativeLayout
        android:id="@+id/myOriginalLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true"
        android:clickable="true">

       ....
       ....

    </RelativeLayout>

    <FrameLayout
        android:id="@+id/bottom_sheet"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
    </FrameLayout>

</android.support.design.widget.CoordinatorLayout>

当我尝试给布局充气时,它会继续崩溃,并说明Error inflating class android.support.design.widget.CoordinatorLayout

2 个答案:

答案 0 :(得分:0)

  

通过使用theme更改Activity来使用此AppCompatActivity

    <style name="Theme.DesignDemo" parent="Base.Theme.DesignDemo">
    </style>

    <style name="Base.Theme.DesignDemo" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#673AB7</item>
        <item name="colorPrimaryDark">#512DA8</item>
        <item name="colorAccent">#FF4081</item>
        <item name="android:windowBackground">@color/window_background</item>
    </style>
  

将您的buildToolsVersion更改为23.0.3。然后Sync再次Gradle

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId ""
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
}
  

并添加此依赖项。

dependencies {
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.android.support:cardview-v7:23.4.0'
}

答案 1 :(得分:0)

解决问题的解决方案:

  1. 我使用的活动是Activity,而不是AppCompatActivity,因此必须进行更改。
  2. 但是,将Activity更改为AppCompatActivity时,由于我使用的是常规ActionBar,我仍然会崩溃。 所以我采取的步骤来解决这个问题:

    a. call `getSupportActionBar()` instead of `getActionBar()`
    b. change `ActionBar` to `support.v7.app.ActionBar`