可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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.+'
}
回答1:
Please change it into AppCompatActivity if you use Activity. Probably it becomes the error when it is Activity.
回答2:
Just use this line in FloatingActionButton (app
instead of android
):
app:backgroundTint="@color/colorAccent"
回答3:
For those using AndroidX Dependency
Along with changing dependencies, XML must also be changed.
from
<android.support.design.widget.CoordinatorLayout
to
<androidx.coordinatorlayout.widget.CoordinatorLayout
回答4:
Please put compile 'com.android.support:design:23.0.1'
inside your project build.gradle file
回答5:
I had the same error. Just change the project parent theme to
<style name="Base.AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
or any other Theme.AppCompat*
回答6:
You have to include the support libraries.
- Go to "Project Structure" -> Dependencies
- On the right side click "+" and select "1. Library dependency"
- Search for "android.support"
- Add both:
- com.android.support:appcompat-v7:.......
- com.android.support:design:........
- Sync Gradle
Happy codding! :)
回答7:
needed both:
extend AppCompatActivity instead of FragmentActivity
public class MyActivity extends AppCompatActivity
parent of used style (/res/values/styles.xml)
<style name="MyStyle" parent="Theme.AppCompat">
additionally:
回答8:
For Xamarin Developers:
(supports Android API 7 to 22+)
- Make sure you have installed following components:
- Android Support Design Library
- Android Support Library v7 AppCompat
- Make sure all NuGet packages for these components are installed and referenced. These are:
- Xamarin.Android.Support.Design
- Xamarin.Android.Support.v4
- Xamarin.Android.Support.v7.AppCompat
- Xamarin.Android.Support.v7.RecyclerView
- Your Apps Activity should derive from
Android.Support.V7.App.AppCompatActivity
Your used style has to be derived from a Theme.AppCompat.*
style. So your Resources\values\styles.xml
should look like this:
<?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>
Also make sure you actually use the theme in your AndroidManifest.xml
<application android:theme="@style/YourAppTheme"></application>
回答9:
Add these dependencies into your gradle file. This may solve the problem in some cases.
dependencies {
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
...
}
回答10:
You need to add in your app's build gradle the following support library.
compile 'com.android.support:design:23.0.1'
that was last year, now the latest version is
compile 'com.android.support:design:27.0.2'
回答11:
For me, I came across this error when using a mix of androidx
and android.support.v7
libraries.
See my solution for that version of this error here: https://stackoverflow.com/a/52490825/1762493
回答12:
For those using AndroidX Dependency.
In your xml files make sure all your
android.support.???
nodes inside CoordinatorLayout's
(like included ActionBars)
are also replaced with
androidx.??? (or com.google.android.???)
ones .
回答13:
It worked for me
Disable Instant Run
File => Settings => Build, Execution, Deployment => Instant Run