Background ListView devient noir lors du défilement

J'ai créé une liste spécifique qui existe hors des éléments suivants pour créer une liste défilable avec chaque ligne contenant une image sur le côté gauche et un texte sur le côté droit:

Pour commencer par une mise en page "racine":

  • BuildConfig.DEBUG est-il encore écouté?
  • Comment puis-je afficher par programme le deuxième enfant de ViewFlipper?
  • Ajouter la vue de bas de page natif à la vue web
  • Android: inputType = "textEmailAddress" - '@' et une touche '.com'?
  • Ajout de l'événement PlaceAutocompleteFragment à l'erreur de lancer des fragments
  • Mettre à jour la barre de progression depuis AsyncTaskLoader?
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#C8C8C8" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content"/> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" android:divider="#C8C8C8" android:background="#C8C8C8"/> 

    Et ensuite, dans le ListView, je place l'élément suivant "row":

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="@drawable/bg_row" > <ImageView android:layout_width="wrap_content" android:paddingLeft="10px" android:paddingRight="15px" android:paddingTop="5px" android:paddingBottom="5px" android:layout_height="wrap_content" android:src="@drawable/bg_image" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="5px" android:paddingBottom="5px" android:textSize="16sp" android:textColor="#000000" android:layout_gravity="center" android:maxHeight="50px"/> </LinearLayout> 

    Tant que l'écran est représenté de manière statique (comme dans aucun mouvement), il s'affichera correctement, mais lorsque je commencerai à faire défiler la liste, l'arrière-plan de l'élément de ligne (une "icône" telle que visible dans le code) sera Correctement affiché, mais l'arrière-plan de la disposition "racine" deviendra complètement noir … Lorsque le défilement arrête, l'arrière-plan sera, la plupart du temps, retrouvé sa couleur … Au cours de mes tests, j'ai également ajouté une TextView dans cette racine – Élément avec le même fond, celui-ci détermine sa couleur lorsque la liste est défilée … Une idée de la raison pour laquelle cela se produit et comment résoudre ce problème?

  • Impossible de trouver un plug-in DRM
  • Sur l'élément de dessin de navigation cliquez, nouvelle liste dans le tiroir de navigation
  • Android- Thread.join () provoque l'attente de l'application
  • Est-il possible de faire un gris (ne pas simplement désactiver) un MenuItem dans Android?
  • L'activité onStop () n'est pas appelée lorsque le bouton d'accueil est pressé en mode multi-fenêtre Android N
  • L'exécution d'Android Studio sur Windows 7 échoue, aucun SDK Android n'a trouvé
  • 11 Solutions collect form web for “Background ListView devient noir lors du défilement”

    Ajouter un attribut sur la ListView

     android:cacheColorHint="#00000000" // setting transparent color 

    Pour plus de détails, vérifiez ce blog

    Il est très simple d'utiliser cette ligne dans votre fichier de mise en page:

     android:scrollingCache="false" 

    comme ça:

     <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollingCache="false" /> 

    Vous pouvez utiliser comme ceci:

     list.setCacheColorHint(Color.TRANSPARENT); list.requestFocus(0); 

     android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" android:divider="#C8C8C8" android:background="#C8C8C8" android:cacheColorHint="#00000000"/> 

    Nous avons beaucoup d'options pour ce problème, vous pouvez définir l'arrière-plan aussi transparent que par programmation

     yourlistview.setCacheColorHint(Color.TRANSPARENT); 

    Ou via xml

     android:cacheColorHint="@android:color/transparent" 

    Il n'y a pas de réponses à cette question, mais aujourd'hui, j'ai réalisé que cette question manque encore d'informations essentielles.

    Il existe deux solutions possibles pour le problème, mais tous deux doivent être utilisés dans différentes situations.


    Méthodes

    Utilisez android:cacheColorHint lorsque votre ListView a un fond de couleur unie .

     <item name="android:cacheColorHint">@android:color/transparent</item> 

    Utilisez android:scrollingCache lorsque votre ListView a une image (complexe) en tant que fond.

     <item name="android:scrollingCache">false</item> 

    Remarque

    Lorsque votre ListView a un fond de couleur unie, les deux méthodes fonctionneront, de sorte que non seulement le cacheColorHint fonctionnera. Mais il n'est pas recommandé d'utiliser la méthode scrolingCache pour les arrière-plans de couleur unie puisqu'il éteint une méthode d'optimisation utilisée pour animer et faire défiler le ListView.

    Remarque pour la note: scrolingCache set to false ne signifie pas nécessairement que les animations et le défilement de ListView deviennent lents.

    J'utilise des images dans listView et il devient noir parfois dans samsung s4 même pas en défilement. C'était une erreur stupide que j'ai faite dans l'adaptateur. Je mets mon point de vue à néant pour résoudre ce problème

      @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder; convertView = null; // convert view should be null if (convertView == null) { holder = new Holder(); convertView = inflater1.inflate(R.layout.listview_draftreport_item, null); } } 

    Dans votre xml où utiliser l'ensemble Listview

      android:cacheColorHint="@android:color/transparent" 

    Les suivants ont fonctionné pour moi:

     myListView.setScrollingCacheEnabled(false); 
     android:cacheColorHint="@android:color/transparent" 

    android:cacheColorHint="#00000000"// setting transparent color

    ou

    Ne définissez pas l' arrière-plan de listview .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.