42

I would like use a FloatingActionButton on my application, I read this : https://guides.codepath.com/android/Floating-Action-Buttons#google-s-official-support-library but when I run the Activity I have this error :

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xavier_laffargue.podcast/com.xavier_laffargue.podcast.ACT_Test}: android.view.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.CoordinatorLayout

XML File

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content"
    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">

    <ListView
        android:id="@+id/lvToDoList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_margin="24dp"
        android:src="@drawable/ic_action_refresh"
        app:layout_anchor="@id/lvToDoList"
        app:layout_anchorGravity="bottom|right|end" />

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

Graddle

*apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.xavier_laffargue.podcast"
        minSdkVersion 21
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:support-v4:22.2.0'
    compile 'com.android.support:design:22.2.0'

    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:support-v13:22.2.0'
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'

}
4

13 回答 13

45

对于那些使用AndroidX依赖的人

随着依赖的改变,XML也必须改变。

<android.support.design.widget.CoordinatorLayout 

<androidx.coordinatorlayout.widget.CoordinatorLayout
于 2019-02-16T21:19:32.447 回答
41

如果您使用 Activity,请将其更改为 AppCompatActivity。当它是Activity时,它可能会变成错误。

于 2015-06-02T12:27:33.663 回答
26

只需在 FloatingActionButton 中使用这一行(app而不是android):

app:backgroundTint="@color/colorAccent"
于 2016-05-23T05:08:20.533 回答
18

请放入compile 'com.android.support:design:23.0.1'您的项目 build.gradle 文件中

于 2016-05-21T06:08:41.607 回答
16

我有同样的错误。只需将项目父主题更改为

<style name="Base.AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

或任何其他 Theme.AppCompat*

于 2015-06-07T11:59:05.590 回答
6

您必须包含支持库。

  1. 转到“项目结构”-> 依赖项
  2. 在右侧点击“+”并选择“1.库依赖”
  3. 搜索“android.support”
  4. 添加两者:
    • com.android.support:appcompat-v7:.......
    • com.android.support:design:.......
  5. 同步 Gradle 在此处输入图像描述 编码愉快!:)
于 2017-02-16T07:55:10.193 回答
4

将这些依赖项添加到您的 gradle 文件中。在某些情况下,这可能会解决问题。

dependencies {
   compile 'com.android.support:appcompat-v7:23.1.1'
   compile 'com.android.support:design:23.1.1'
   ...
}
于 2016-10-06T17:34:03.900 回答
4

两者都需要:

  • 扩展 AppCompatActivity 而不是 FragmentActivity

    public class MyActivity extends AppCompatActivity
    
  • 使用样式的父级 (/res/values/styles.xml)

    <style name="MyStyle" parent="Theme.AppCompat">
    

此外:

  • 在styles.xml 中定义颜色

    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
    
于 2015-10-11T15:28:58.893 回答
3

对于 Xamarin 开发人员:

(支持 Android API 7 到 22+)

  1. 确保您已安装以下组件:
    • Android 支持设计库
    • Android 支持库 v7 AppCompat
  2. 确保已安装并引用这些组件的所有 NuGet 包。这些是:
    • Xamarin.Android.Support.Design
    • Xamarin.Android.Support.v4
    • Xamarin.Android.Support.v7.AppCompat
    • Xamarin.Android.Support.v7.RecyclerView
  3. 您的 Apps Activity 应源自Android.Support.V7.App.AppCompatActivity
  4. 您使用的样式必须源自Theme.AppCompat.*样式。所以你Resources\values\styles.xml应该看起来像这样:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="YourAppTheme" parent="Theme.AppCompat">
            <item name="colorPrimaryDark">#AB000D</item>
            <item name="colorPrimary">#E53935</item>
            <item name="colorAccent">#00B8D4</item>
        </style>
        <!-- other styles... -->
    </resources>
    
  5. 还要确保你在你的AndroidManifest.xml

    <application android:theme="@style/YourAppTheme"></application>
    
于 2017-06-19T17:09:43.910 回答
1

您需要在应用程序的构建 gradle 中添加以下支持库。

    compile 'com.android.support:design:23.0.1'

那是去年的,现在最新的版本是

    compile 'com.android.support:design:27.0.2'
于 2018-01-16T14:37:07.000 回答
0

androidx对我来说,我在使用混合android.support.v7库时遇到了这个错误。

在此处查看我针对该错误版本的解决方案:https ://stackoverflow.com/a/52490825/1762493

于 2018-09-25T05:04:11.320 回答
0

对于那些使用 AndroidX 依赖的人。在您的 xml 文件中,确保您的所有

 android.support.???

CoordinatorLayout 中的节点(如包含的 ActionBars)也被替换为

androidx.??? (or com.google.android.???)

那些 。

于 2019-06-20T10:03:41.710 回答
-1

它对我有用

禁用即时运行

文件 => 设置 => 构建、执行、部署 => 即时运行

于 2017-09-08T05:46:29.750 回答