Android – ¿Cómo implementar un NavigationDrawer parcialmente visible en todo momento?
Me gustaría tener un NavigationDrawer en mi proyecto de Android que muestra el ListView parcialmente en todo momento, y los elementos también se pueden hacer clic, pero cuando el usuario arrastra el cajón completo ListView aparece.
Debajo de la imagen es lo que estoy tratando de lograr:
- Línea de archivo XML binario # 17: Error al inflarse clase <unknown> causado por UnsupportedOperationException: No se puede convertir a dimension: type = 0x2
- Cómo manejar varios temporizadores de cuenta regresiva en ListView?
- Cómo agregar datos a BaseAdapter personalizado para listView - Android
- Cómo crear personalizado BaseAdapter para AutoCompleteTextView
- Mejor manera de mostrar datos de flujo en la vista de lista de Android
Primero uno es la "vista normal" donde usted puede ver los pequeños iconos. La segunda es cuando el usuario desliza el cajón de navegación para que se abra. El tercero es cuando de nuevo en la vista normal el usuario hace clic en A y C, para que los iconos cambien su color.
¿Alguna recomendación de cómo hacer esto?
Gracias por responder 🙂
- SetOnFocusChangeListener: desencadena después de cada carácter
- Diseño de filas ListView de Android ignorando el relleno
- Omitió 60 cuadros! La aplicación puede estar haciendo demasiado trabajo en su hilo principal
- Filtrar un ListView con BaseAdapter filtra el texto no las imágenes
- ListView con un adaptador personalizado, agregando elementos uno por uno
- ListView con temporizador Coundown. El temporizador parpadea cuando se desplaza la vista de lista
- Adaptador con hasStableIds utilizando GUID o Strings como Ids
- Cómo actualizar ListView en fragmento que se rellena con BaseAdapter?
Me encontré con esta biblioteca de código abierto, https://github.com/StevenRudenko/ActionsContentView . No lo he usado personalmente así que no puedo decir que encajará en su caso de uso exacto de tener un cajón a la derecha, pero tiene el cajón de la izquierda. Incluso entonces usted podría comenzar de allí y debe poder construir sobre él para caber su caso de uso.
Gracias por todas las respuestas. Esto es lo que hice para que funcione:
Utilicé fragmentos superpuestos y animación como sugerido. Mientras onCreate calculé manualmente el ancho del mapa (screensize – el tamaño del cajón mientras colapsado) de modo que no se estira extrañamente mientras se modifica el tamaño del cajón. Puse el cajón dentro de un fragmento y el fragmento visible en todo momento. Después de eso implementé OnGestureListener e hice un GestureDetector a mi actividad, y empecé a escuchar los eventos de toque del Gaveta:
drawer.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View view, MotionEvent e) { gestureDetector.onTouchEvent(e); return false; } });
Y luego onFling-método
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if(velocityX < -250) { //animation for increasing the list width from 80 to 240 } else if (velocityY > 250 ) { //animation for decreasing the list width from 240 to 80 } return true; }
Recomendaría que utilice dos fragmentos superpuestos para este escenario. Puedes consultar http://developer.android.com/guide/practices/tablets-and-handsets.html y http://developer.android.com/guide/components/fragments.html para las guías.
Si tiene alguna pregunta más específica, háganmelo saber.
- ¿Cómo mantener los atributos de diseño en la vista personalizada android combinada?
- El nombre de host no puede ser nulo incluyendo http en android