Tengo una visión que se utiliza como un elemento de una ListView
. En mi adaptador personalizado, cambio el fondo de la vista utilizando View.setBackgroundResource()
dependiendo de la posición del elemento de la lista. (Tengo activos separados para el primer y el último elemento de la lista.)setBackgroundResource() descarta atributos XML mi diseño
Establece la imagen de fondo correcta como se esperaba, pero tiene el desagradable efecto secundario que todo el relleno que establecí en la definición XML de la vista es completamente ignorada
(Si fijo el dibujable fondo en el XML, y no trato de variar en tiempo de ejecución en el adaptador, todo el relleno funciona bien.)
Cómo puede alterar I la imagen de fondo, y retener el relleno? ¿Es esto un error?
EDITAR parece que alguien ha encontrado el mismo problema aquí: Does changing the background also change the padding of a LinearLayout?
Eso lo cura , Gracias. En mi caso, el dibujable es un PNG de nueve parches. –
Interesante, entonces tal vez esté más extendido de lo que pensaba. – dmon
Ah, de hecho lo es. Echar un vistazo al código de la Vista (http://j.mp/kxQJIJ), en setBackgroundDrawable(). Está sobrescribiendo claramente el relleno usando el relleno del dibujo.Pero echando un vistazo a la documentación del recurso Drawable, nada es compatible con el relleno, excepto las formas, por lo que podría ser por qué falla miserablemente. – dmon