Android ListView colores de fondo siempre mostrando gris
Tengo un ListView que estoy poblando de un ListAdapter personalizado. Dentro del adaptador (en el método getView (int, View, ViewGroup) ) estoy configurando el color de fondo de la vista usando setBackgroundColor (int) . El problema es que no importa qué color debo fijar el fondo a él siempre sale un gris oscuro. También podría valer la pena señalar que estoy usando el tema de la Luz.
Bits de código relevantes (simplificados):
AndroidManifest.xml:
<activity android:name=".MyActivity" android:theme="@android:style/Theme.Light" />
MyAdapter.java:
@Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(mContext); View av = inflater.inflate(R.layout.my_row, parent, false); av.setBackgroundColor(R.color.myRow_red); mName = (TextView) av.findViewById(R.id.myRow_name); mName.setText("This is a name"); return av; }
¿Ideas / sugerencias?
Debe utilizar: setBackgroundResource(R.color.myRow_red)
lugar de setBackgroundColor()
. En su ejemplo, el color de fondo se asigna con el ID en lugar del color real descrito en los recursos.
Debe establecer el atributo cacheColorHint en el color de fondo deseado para su lista. Esta es una solución necesaria para tener en cuenta una optimización de dibujo que Android realiza en las listas.
Vea aquí: link text
Me encontré con un problema similar en el que el divisor se acercaba gris. Encontré que las otras soluciones no tenían ningún efecto, pero android:divider="<drawable,color, or whatever>"
en mi ListView
trabajado.
Usted frío siempre envolver toda la fila dentro de otra vista y establecer el color de fondo en esa vista. Esta visión sería el primer (y único) hijo de la fila.
Trate de hacer esto:
av.setBackgroundColor(getResources().getColor(R.color.myRow_red));
prueba esto:
setBackgroundColor(0xFF5DB9FB);