16

Ho riscontrato un problema durante la modifica del colore backgroundTint in xml per FAB, che il colore non è stato assegnato per i dispositivi con versioni Gingerbread. Sono davvero confuso e non so perché si sta comportando in modo strano. Sono completamente bloccato da questo problema con un paio d'ore che ha dato il via alla soluzione, ma non ci sono riuscito. Gentilmente aiutami con i tuoi suggerimenti e suggerimenti per risolvere il mio problema. Sto postando il mio codice e la schermata del problema come riferimento. Grazie in anticipo.Colore FAB per backgroundTint che non cambia in dispositivi versione Gingerbread

include_fab.xml libreria di supporto

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|right" 
    android:layout_marginBottom="20dp" 
    android:layout_marginRight="20dp" 
    app:backgroundTint="#FF0000" 
    app:borderWidth="0dp" 
    app:elevation="5dp" 
    app:fabSize="normal"/> 

design nel mio Gradle

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

Schermata di versioniGingerBread e KitKat

Nota: Sto ottenendo l'output esatto del mio requisito sopra i dispositivi GingerBread. Il problema sorge solo con GingerBread.

enter image description here

+0

Ho problemi simili, causa anche arresti anomali. Stai usando Genymotion? – DariusL

+0

Usando entrambi, ma non ho provato questo in genomotion. – Chandru

+0

Non ho versioni di gingerbread di genomotion, ma funziona perfettamente con le ultime versioni in genymotion – Chandru

risposta

2

Può funzionare

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     FloatingActionButton v = (FloatingActionButton) findViewById(R.id.fab); 
     ColorStateList csl = new ColorStateList(new int[][]{new int[0]}, new int[]{0xffff0000}); 
     v.setSupportBackgroundTintList(csl); 
    } 
+0

Grazie. controllerà e ti farà sapere – Chandru

+1

@Chandru farlo funzionare per te, se sì, ti preghiamo di accettare la risposta in modo che le altre persone ottengano risposta corretta, chiedere se hai qualche domanda. :) – RBK

1

Questo è in realtà un bug nella libreria. C'è un bug report aperto che puoi vedere here.