Icono de lista desplegable de Android (indicador de grupo)

He podido cambiar con éxito mi propia imagen por las flechas de vista de lista expandibles. Tengo dos problemas en este momento.

Una es que los íconos que sustituyo con el código a continuación están estirados a la altura de la fila y también demasiado anchos. El segundo es que este código solo está cambiando el estado inicial del Indicador de grupo. ¿Cómo lo cambio de una imagen a otra cuando una fila en particular está abierta?

Drawable plus = (Drawable) getResources().getDrawable(R.drawable.plus);
getExpandableListView().setGroupIndicator(plus);
Respuesta 1

El comportamiento predeterminado de Android es estirar el ícono de groupIndicator. Es un nueve parche, por lo que si no desea que estire la imagen, debe hacer que el área extensible de su nueve parche sea la región transparente a ambos lados del icono.

Para que cambie apropiadamente cuando se abre ExpandableListView, debe usar un StateListDrawable . Agregue los Drawables apropiados para los siguientes estados:

int[][] states = new int[][] {
        new int[] { android.R.attr.state_expanded },
        new int[] { },
};

Lo haces así:

StateListDrawable sld = new StateListDrawable();
sld.addState(states[0], YOUR_EXPANDED_DRAWABLE);
sld.addState(states[1], YOUR_UNEXPANDED_DRAWABLE);

Y establecer eso en el grupo Indicador.

Espero que ayude.

Respuesta: 2

Tengo cierta confusión sobre cuál debería ser la estructura / diseño del espacio de trabajo / base de código de eclipse para la arquitectura de múltiples capas. Generalmente estamos poniendo código en diferentes paquetes para diferentes capas ...

¿Cómo puedo representar esta ruta en el DSL de Camel: <camel: camelContext id = "camel-context"> <camel: route id = "conductor-event" trace = "true"> <camel: from uri = "direct: .. .

y gracias por leerme Tengo un pequeño problema que es que necesito saber el primer / último día de una semana en un mes y un año, entonces: public String getFirstDayOfWeekAndMonth (int year, int month, ...

Quiero implementar una política de equilibrio de carga en HornetQ que depende de las direcciones IP de los nodos. Por ejemplo, si un nodo específico está disponible, conéctelo, de lo contrario, conéctese a un nodo aleatorio ...