Eu criei uma lista específica que existe entre os seguintes elementos para criar uma lista rolável com todas as linhas que contêm uma imagem no lado esquerdo e algum texto no lado direito:
Para começar com um layout "raiz":
<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"/>
</LinearLayout>
e, no ListView, coloco o seguinte item "linha":
<?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>
Enquanto a tela for mostrada estaticamente (como em nenhum movimento), ela será exibida corretamente, mas quando eu começar a rolar pela lista, o plano de fundo do item de linha (um "ícone", como pode ser mostrado no código) será exibido. mostrado corretamente, mas o plano de fundo do layout "raiz" ficará completamente preto ... quando a rolagem parar, o fundo receberá na maioria das vezes sua cor ... Enquanto eu testei, também adicionei um TextView
elemento raiz com o mesmo plano de fundo, este detém sua cor quando a lista é rolada ... Alguma idéia de por que isso está acontecendo e como resolver isso?
android:cacheColorHint="#0000"
também funciona se você tiver medo de zeros.android:cacheColorHint="@android:color/transparent"
se você tem medo de números :) #É muito simples, basta usar esta linha no seu arquivo de layout:
como isso:
fonte
você pode usar assim:
fonte
fonte
Temos muitas opções para esse problema. Você pode definir o plano de fundo como transparente por meio de programação como
ou através de xml
fonte
No seu xml onde usar
Listview
setfonte
Estou usando imagens
listView
e, às vezes, fica preto no samsung s4 nem mesmo rolando. Foi um erro estúpido que cometi no adaptador. Acabei de colocar meu modo de exibição nulo para corrigir esse problemafonte
Há muitas respostas para essa pergunta, mas hoje percebi que essa pergunta ainda está faltando uma informação crítica.
Existem duas soluções possíveis para o problema, ambas funcionam, mas cada uma deve ser usada em situações diferentes.
Métodos
Use
android:cacheColorHint
quandoListView
tiver um fundo de cor sólida .Use
android:scrollingCache
quando o seuListView
tem um (complexo) imagem como pano de fundo.Nota
Quando o seu
ListView
tem um fundo de cor sólida, ambos os métodos funcionam, portanto, não apenas ocacheColorHint
funciona. Mas não é recomendável usar oscrolingCache
método para fundos de cores sólidas, pois desativa um método de otimização usado para animar e rolar suavemente o ListView.Nota para a nota:
scrolingCache
defina como false não significa necessariamente que asListView
animações e a rolagem se tornarão lentas.fonte
fonte
O seguinte funcionou para mim:
fonte
android:cacheColorHint="#00000000"// setting transparent color
ou
não defina fundo de
listview
.fonte