Animación de sugerencias de NavigationDrawer (como Google Currents)
Estoy buscando una manera de dar a los usuarios una pista de que el cajón de navegación existe.
Me gusta la forma en que Google Currents sugiere que hay una página siguiente, simplemente se desliza en la siguiente página unos pocos píxeles y luego se elimina.
- Elemento seleccionado en el cajón de navegación
- Detección del estado de la aplicación de currículum de diferentes android estado de navegación
- ActionBarDrawerToggle no está configurando el Indicador de cajón
- Lista plegable Elemento en la navegación Cajón
- Incluyendo fila en la parte inferior del cajón de navegación
¿Cuál es la mejor manera de lograr tal animación?
- Cajón de navegación para múltiples actividades
- NavigationDrawer desactivar el desplazamiento a la derecha
- Cómo crear mini-menú de cajones en Android?
- Adición de un diseño lineal al cajón de navegación (termina chocando con un ClassCastException)
- Elemento en negrita después de la selección
- Android: cajón de navegación sin xml
- El gaviota de navegación de Android no pasa onTouchEvent a la actividad
- Icono de desplazamiento de la bandeja de navegación de Android a la derecha
Si está implementando su propio ViewGroup personalizado, debe usar un ViewDragHelper para esto. Se encargará de procesar los eventos de toque y desplazar sus vistas para usted cuando sea necesario. Uno que lo ha configurado para satisfacer sus necesidades, sólo tiene que llamar a smoothSlideViewTo
en la vista de su cajón para que se desplace a la posición que desee.
Esta es una buena introducción a ViewDragHelper.
Si utiliza un DrawerLayout
, obtendrá ese tipo de efecto de forma predeterminada cuando el usuario toque el borde de la pantalla. No creo que se puede activar mediante programación, si eso es lo que desea, como peekDrawer()
se declara privado dentro de una instancia, también declarado privado, interno ViewDragHelper.Callback.
Esto sólo mostrará una barra estrecha a la izquierda, como si tuviera el dedo presionado en el borde. No estoy seguro de si esto es lo que Google Corrientes hacer, pero me pareció que esta es una manera elegante de dar una pista. Fuente
protected void peekDrawer() { long downTime = SystemClock.uptimeMillis(); long eventTime = SystemClock.uptimeMillis() + 100; MotionEvent motionEvent = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, 0, 100, 0); m_drawerLayout.dispatchTouchEvent(motionEvent); motionEvent.recycle(); new Handler().postDelayed(new Runnable() { @Override public void run() { long downTime = SystemClock.uptimeMillis(); long eventTime = SystemClock.uptimeMillis() + 100; MotionEvent motionEvent = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP, 0, 100, 0); m_drawerLayout.dispatchTouchEvent(motionEvent); motionEvent.recycle(); } }, (long) (1 * DateUtils.SECOND_IN_MILLIS)); //change 1 to however many seconds you wish to display the hint for }
- Recyclerview Sin adaptador conectado; Saltar el diseño
- ¿Cómo cierro Google Navigation de forma programática?