2017-07-26 3 views
2

J'ai essayé d'implémenter le bouton d'action flottante dans mon autre projet avec fab et le personnaliser et il fonctionne très bien. Mais cette fois, quand je crée l'objet fab dans ma mise en page xml, il montre une erreur. Se sentant confus, il a essayé d'enlever une partie de sa balise et a découvert que donner la balise android: backgroundTint est quand l'erreur apparaît.bouton d'action flottante avec la couleur de fond cause erreur

Voici le code:

<android.support.design.widget.FloatingActionButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:fabSize="mini" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:src="@drawable/ic_action_fab" 
    android:backgroundTint="#2196F3" 
    android:layout_margin="12dp"/> 

Voici ma construction:

compileSdkVersion 25 
buildToolsVersion '25.0.0' 

defaultConfig { 
    applicationId "com.xxxx.xxxx" 
    minSdkVersion 10 
    targetSdkVersion 23 
    versionCode 1 
    versionName "2.0.4" 
} 

J'ai également ajouté le gradle de conception Google.

L'erreur:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxx.xxxx/com.xxxx.xxxx.HomeActivity}: android.view.InflateException: Binary XML file line #141: Binary XML file line #141: Error inflating class android.support.design.widget.FloatingActionButton 

Dès que je supprime l'androïde: tag backgroundtint, l'erreur a disparu. Une idée de pourquoi cela se passe?

Répondre

6

Au lieu de android:backgroundTint="#2196F3", essayez avec app:backgroundTint="#2196F3"

3

Selon le documentation, par défaut, il prend la couleur définie dans styles.xml attribut colorAccent.

Si vous souhaitez changer la couleur, en XML avec l'attribut app:backgroundTint et non android:backgroundTint

Ainsi, le XML final pour l'icône fab sera

<android.support.design.widget.FloatingActionButton 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
app:fabSize="mini" 
android:layout_alignParentBottom="true" 
android:layout_alignParentRight="true" 
android:src="@drawable/ic_action_fab" 
app:backgroundTint="#2196F3" 
android:layout_margin="12dp"/> 
0

Comme les réponses données ci-dessus, il est correct d'ajouter l'application: backgroundTint au lieu d'android: backgroundTint. Vous pouvez trouver le détail à ce dans answer

Je ne sais pas vraiment si je devrais supprimer cet article puisqu'il pourrait être une sorte de copie, mais j'apprécie vraiment votre aide les gars.