2016-03-10 14 views
7

Sto utilizzando la libreria di supporto di google cardView per la funzionalità della mia scheda. Funziona bene per kitkat e versioni precedenti, ma lo sfondo della scheda è impostato su nero e padding/margini non vengono applicati sul dispositivo 4.1.2.Android: Cardview Lo sfondo diventa nero su 4.1.2

<android.support.v7.widget.CardView 
     android:id="@+id/all_goals_card_view" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_marginRight="20dp" 
     android:layout_marginLeft="20dp" 
     android:layout_gravity="center" 
     android:layout_marginTop="20dp" 
     android:layout_marginBottom="20dp" 
     android:padding="10dp" 
     app:cardCornerRadius="4dp" 
     card_view:cardPreventCornerOverlap="false" 
     card_view:cardBackgroundColor="@android:color/white" 
     > 
</android.support.v7.widget.CardView> 
+0

Hai la risposta corretta. Sto affrontando lo stesso problema. Per favore aiuto. – Shiv

+0

@Shiv Sto supportando Android versione 4.4 e successive per ora. – Sutirth

risposta

7

non utilizzare "@android: colore/bianco"

card_view:cardBackgroundColor="#fff" 
+0

Non fa alcuna differenza la stessa uscita – Sutirth

+0

forse si seleziona il tema scuro nel manifest –

+0

@Sutirth si prega di cambiare anche il colore di sfondo di qualsiasi layout relativo o lineare all'interno di cardview –

25

Va bene, ho appena imbattuto lo stesso problema e ho trovato alcuni dispositivi per avere un po 'di luce molto-light "speciale" -preparazioni predefinite tosse samsung tosse Risponderò a questa ricerca un po 'vecchia.

La cosa qui è che molto probabilmente stai usando il context sbagliato per gonfiare il layout. Penso che tu stia usando lo application-context per farlo. Application-Context non applica il tema che hai definito.

Questo (gonfiare con l'applicazione al contesto) è legale, ma l'inflazione sarà fatto con il tema di default per il sistema su cui si è esecuzione, non ciò che è definita nell'applicazione. *

Per esempio se si fa:

LayoutInflater.from(context).inflate(R.layout.menu_rental_list_item, parent, false); 

Il context qui dovrebbe essere un 012.o FragmentContext - NON il contesto dell'applicazione.

Si prega di controllare che.

*) Ah, vuoi leggere di più sui contesti? Per favore continua a leggere here.

+1

Impressionante. non facile da catturare. Grazie mille –

+0

@Langusten Gustel grazie mille. Un altro strano comportamento spetico di Samsung, "sospiro ..." – Lev

+1

Oh mio Dio, ho perso solo poche ore per questo "bug". Grazie – Mescht

1

Questo risolverà il problema:

 <android.support.v7.widget.CardView 
     xmlns:card_view="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:background="#fff" 
     card_view:cardBackgroundColor="#fff" 
     android:layout_margin="2dp"> 

Avviso queste righe:

xmlns:card_view="http://schemas.android.com/apk/res-auto" 

and 

card_view:cardBackgroundColor="#fff" 
0

Non utilizzare

Android: Theme.Dialog

o

android.R.style.Theme_Dialog

, se il vostro CardView è una parte del layout DialogFragment o dialogo.

1

Ho avuto lo stesso problema sul dispositivo Android 4.1.2. Stavo usando un ImageView con una forma disegnabile all'interno di CardView che era il vero colpevole.

Si prega di verificare la risposta in questo link che mi ha aiutato a risolvere il problema.