我想在我的应用程序上使用FloatingActionButton,我读到这个:https://guides.codepath.com/android/Floating-Action-Buttons#google-s-official-support-library但是当我运行Activity时出现了这个错误:
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文件
<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.+'
}
答案 0 :(得分:40)
如果您使用Activity,请将其更改为AppCompatActivity。当它是活动时可能会出现错误。
答案 1 :(得分:27)
只需在FloatingActionButton中使用此行(app
代替android
):
app:backgroundTint="@color/colorAccent"
答案 2 :(得分:18)
请将compile 'com.android.support:design:23.0.1'
放入项目build.gradle文件
答案 3 :(得分:16)
我有同样的错误。只需将项目父主题更改为
即可{{1}}
或任何其他Theme.AppCompat *
答案 4 :(得分:7)
对于使用 AndroidX 依赖项
的用户随着依赖关系的变化, XML 也必须更改。
来自
<android.support.design.widget.CoordinatorLayout
至
<androidx.coordinatorlayout.widget.CoordinatorLayout
答案 5 :(得分:6)
您必须包含支持库。
答案 6 :(得分: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>
答案 7 :(得分:3)
将这些依赖项添加到gradle文件中。在某些情况下,这可能会解决问题。
dependencies {
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
...
}
答案 8 :(得分:3)
(支持Android API 7到22 +)
Android.Support.V7.App.AppCompatActivity
您使用的样式必须来自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>
还要确保您实际使用AndroidManifest.xml
<application android:theme="@style/YourAppTheme"></application>
答案 9 :(得分:1)
您需要在应用的构建gradle中添加以下支持库。
compile 'com.android.support:design:23.0.1'
那是去年,现在最新版本是
compile 'com.android.support:design:27.0.2'
答案 10 :(得分:0)
答案 11 :(得分:0)
适用于使用AndroidX依赖关系的用户。 在您的xml文件中,确保所有
android.support.???
CoordinatorLayout内部的个节点 (如随附的ActionBar) 也被替换为
androidx.??? (or com.google.android.???)
一个。
答案 12 :(得分:-1)
它对我有用
禁用即时运行
File =&gt;设置=&gt;构建,执行,部署=&gt;即时运行