2012-06-15 10 views
5

Me gusta el diseño de la aplicación de Gmail para Android y me pregunto si lo crearon utilizando un enfoque estándar.Diseño/control de Android para mostrar "flecha" desde la pestaña abierta a Lista/Menú?

Supongo que usa fragmentos, uno para el menú del lado izquierdo y otro para el contenido. Pero lo que me parece realmente genial aquí es esta pequeña flecha que apunta desde el contenido hasta el elemento seleccionado. Da la sensación de que la página de contenido se coloca encima del resto.

¿Hay algo como esto disponible de fábrica?

enter image description here

+0

Definitivamente no está fuera de la caja en la pila estándar de la interfaz de usuario de Android. Además, la aplicación se parece sospechosamente a HTML. De todos modos, el triángulo no es parte del panel derecho, es un elemento dinámicamente visible en el elemento de la lista. Además del borde roto. –

Respuesta

1

Parece que él está utilizando 2 listviews, y por lo que esa flecha no creo que esté disponible. Miré un montón de características 4.0 pero realmente no veo nada cerca de eso. ¿Estoy pensando que podría ser parte del trasfondo del ListView correcto?

+0

Nah, debe ser una vista de lista (izquierda) y una vista personalizada (derecha). Es muy difícil mantener sincronizadas dos vistas de lista. Quiero decir que sería muy difícil posicionar la flecha desde la segunda vista de lista. –

2

Creo que están usando android: windowContentOverlay en el lado izquierdo del elemento seleccionado donde muestran la "flecha" -como dibujable. El dibujable debe tener android: gravedad = "derecha" por lo que se coloca correctamente.

Por supuesto, necesitaría ajustar su diseño para que se vea "real", pero logré algunos efectos similares con esta técnica.

+0

Agregaré a lo anterior que el dibujo también debe contener una sombra (si hay una en el centro, no puede salir de la captura de pantalla), de modo que se mezclará perfectamente con el separador y parecerá que es un continuación de eso. –

+0

Supongamos que el panel izquierdo es un ListView, ¿cómo mantener el elemento seleccionado resaltado después de su lanzamiento? Intenté usar el selector pero solo lo mantiene resaltado cuando mantienes presionado el elemento. – gisek

+0

Lo sé. Eso no funciona. Lo que hice fue hacer que mi vista de elemento (por lo tanto, una fila de vista de lista) implementara Comprobable y luego use setItemChecked (posición, verdadero) de ListView cuando quería que un elemento se comportara de manera diferente. En su opinión, debe cambiar el color de fondo de la vista/dibujable a lo que necesita. También utilicé un miembro booleano mChecked en mi opinión, para un seguimiento del estado más sencillo. Preste atención a ** siempre * llame a setItemChecked cuando desee que el elemento cambie de estado. Establecer mChecked directamente hará que su vista se comporte de forma errática debido al reciclaje de elementos.Déjame saber como va. –

0

Disposición multipane: lado izquierdo un fragmento de lista (o fragmento con una vista recyclerview), lado derecho un fragmento con la vista de contenido (scrollview, listview, recyclerview, webview, etc.).

Si se selecciona el elemento de la izquierda (modelo de selección única), el selector utiliza un dibujo diferente para el estado seleccionado y actualiza el contenido de la derecha. Tal vez el elemento de vista de lista tenga un relleno adicional en el extremo para evitar la superposición con el dibujo de mapa de bits de flecha que se utiliza dentro del selector.

En Lollipop puede haber también un efecto de onda adicional en la parte superior (dibuje el selector en la parte superior o utilice un drawable-v21 específico con rizo).

El efecto de sombreado se puede lograr con un framelayout en el fragmento de la izquierda (el primer miembro es la vista de lista, el segundo miembro es una vista que muestra la sombra (degradable dibujable) como fondo con gravedad ajustada al final).

Cuestiones relacionadas