Realmente quiero implementar esto (la navegación lateral) en una aplicación propia, ¿alguien sabe cómo logró Google hacer esto?
Parece que han retirado la ventana actual a un lado y han puesto su propia navegación aérea.
Realmente quiero implementar esto (la navegación lateral) en una aplicación propia, ¿alguien sabe cómo logró Google hacer esto?
Parece que han retirado la ventana actual a un lado y han puesto su propia navegación aérea.
Respuestas:
De hecho, hay una forma de hacer esto. Incluso sin implementar el tuyo propio
ActionBar
.¡Solo eche un vistazo a
hierachyviewer
! (Ubicado en el directorio de herramientas)Ahí está el
DecorView
, y unLinearLayout
cuando era niño. EsteLinearLayout
contiene tanto elActionBar
contenido como el resto. Entonces, simplemente puede aplicar un pocoFrameLayout.LayoutParams
a estoLinearLayout
y obtener algo de espacio en el lado izquierdo de esta manera. Luego, puede llenar este espacio con su menú-ListView y superponer el otro contenido con un FrameLayout, que, cuando se hace clic, colapsa el menú. Entonces, aquí hay un código:Primero, la clase para contraer / expandir (SlideMenu.java):
Algunos métodos de ayuda (para mí, en static Functions.java):
Luego, los diseños:
Diseño del menú (res / layout / menu.xml)
Diseño de la lista de elementos (res / layout / menu_listitem.xml):
Cómo usarlo:
En tu
onCreate()
:En el controlador de su botón de inicio de ActionBar:
¡Eso es!
Y ahora, una pequeña captura de pantalla en acción:
Hasta donde yo sé, está funcionando. Si tiene algún problema o mis explicaciones no son claras, ¡contácteme!
EDITAR:
ExtendedViewPager
&ExtendedPagerStrip
:ExtendedViewPager:
ExtendedPagerTabStrip:
Utilizo esto
SlideMenu
para una actividad con unaViewPager
conPagerTabStrip
para pestañas como Hablar, Mercado, etc. No puede deshabilitar estas Vistas de una manera fácil, por lo que las dos clases anteriores solo las extienden para detener elonTouch
evento cuando están deshabilitadas.fuente
Hay varios intentos de hacer esto, sin embargo, todavía tengo que encontrar una biblioteca o un código fuente sobre cómo implementarlo con éxito con la barra de acciones en todos los niveles de API. Una biblioteca prometedora está aquí
https://github.com/jfeinstein10/SlidingMenu
aquí es un video de la aplicación de ejemplo .
aquí está el enlace de la aplicación Google Play .
Esto funciona con ActionbarSherlock. Tendrá que construir la biblioteca SlidingMenu con ABS para que funcione. ¡Funciona y luce genial!
fuente
Hice un resumen de la implementación original y agregó el análisis de XML, así como
autodetection
un posible presenteactionbar
, por lo que funciona con la barra de acción nativa y de soporte, comoActionBarSherlock
.Todo es ahora un proyecto de biblioteca junto con una aplicación de ejemplo y se describe en Menú deslizante para Android ¡ Gracias a scirocco por la idea y el código iniciales!
fuente
Si está utilizando un nivel de API superior a 11, puede usar un enfoque mucho más simple inspirado en la respuesta dada por @Scirocco
La idea aquí es usar
ValueAnimator
eso transforma y no solo anima el diseño principal con la barra de acción, para que pueda interactuar con la vista inflada que desea usar como panel deslizante. Debe reemplazar los valores codificados con algo que sea de utilidad para su aplicación.Espero que esto ayude :)
fuente
Bueno, actualmente estoy trabajando en un proyecto y encontré el menú deslizante, busqué en Google, pero me decepcionó mucho ver que nadie ha dado un fragmento de código o alguna pista sobre cómo comenzar a hacer un menú deslizante, pero todos han dado un enlace a algunos proyectos / bibliotecas de github para usar, decidí hacerlo yo mismo y finalmente tengo mi propio menú deslizante listo ...
He pasado dos días en eso
1. sobre la realización de animaciones de deslizamiento
2. sobre cómo hacer que funcione con todas las resoluciones de pantalla
Es realmente fácil y simple una vez que tienes una idea sobre las animaciones , he leído en algún lugar, no es sensato reinventar la Rueda (personas que se refieren al código fuente de github del menú deslizante), pero creo que deberías al menos una vez intente hacer el suyo propio para tener una idea de cómo funciona y funciona realmente: P
esta es una imagen de cómo funcionará mi menú deslizante
1.Find.xml
//later in the code it will be refer as findLayout
2.Filter.xml
//later in code refer as FilterLayout
En find.xml he incluido filter.xml inicialmente, que es invisible
Ahora FilterAnimation.java
Ahora Find.java
Aquí están las animaciones res / anim
1.filter_slide_in.xml
2.filter_slide_out.xml
3.otro_deslizamiento_en.xml
4.other_slide_out.xml
Ahí tiene un menú deslizante funcional y completo, y puede personalizarlo para satisfacer sus requisitos, si alguien todavía tiene algunos problemas para configurar, no dude en preguntar, me complace ayudarlo :)
fuente
Creé mi propia solución para deslizar la vista y mostrar un menú debajo, ya que muchas otras soluciones parecían no funcionar en versiones anteriores de Android o carecían de las instrucciones adecuadas sobre cómo hacer que funcionara.
Mi solución tiene las siguientes características:
La solución utiliza un diseño personalizado, llamado SlidingMenuLayout, al que se espera que agregue 2 vistas. La primera vista que agrega es el menú, la segunda es la vista principal.
La forma más sencilla de agregar el diseño a su proyecto existente es anular el
setContentView()
método de su actividad :En este ejemplo,
MenuView
es la vista la que realmente mostrará el menú. Depende de usted implementar esta vista.Finalmente, puede agregar un botón (generalmente en la esquina superior izquierda de su vista principal), que llama
openMenu()
ocloseMenu()
en el diseño según corresponda.El código de
SlidingMenuLayout
se encuentra en la página del proyecto de GitHub .fuente
Para aquellos de ustedes que usan la biblioteca SlidingMenu ( https://github.com/jfeinstein10/SlidingMenu ) hay una manera de conectarlo y parece funcionar. Con la ayuda de @Scirocco, ponga esto en su
onCreate
para la actividad:Básicamente, lo que hace es reemplazar la
linearlayout
vista en decoración con laslidingmenu
.Aviso: solo lo he probado ligeramente, pero parece funcionar.
fuente
esta es mi clase se extiende
SlidingPaneLayout
. Puede deslizarse con actiofuente