Eu realmente quero implementar isso (a navegação lateral) em um aplicativo meu, alguém sabe como o Google conseguiu fazer isso?
Eles parecem ter puxado a janela atual de lado e colocado em uma navegação fly-in própria.
Eu realmente quero implementar isso (a navegação lateral) em um aplicativo meu, alguém sabe como o Google conseguiu fazer isso?
Eles parecem ter puxado a janela atual de lado e colocado em uma navegação fly-in própria.
Respostas:
Na verdade, existe uma maneira de fazer isso. Mesmo sem implementar o seu
ActionBar
.Basta dar uma olhada no
hierachyviewer
! (Localizado no diretório de ferramentas)Há o
DecorView
, eLinearLayout
como uma criança. IssoLinearLayout
contém oActionBar
e o outro conteúdo. Portanto, você pode simplesmente aplicar um poucoFrameLayout.LayoutParams
a issoLinearLayout
e obter algum espaço no lado esquerdo desta forma. Então, você pode preencher este espaço com seu menu-ListView e sobrepor o outro conteúdo com um FrameLayout, que, ao ser clicado, fecha o menu. Então, aqui está um código:Primeiro, a classe para recolher / expandir (SlideMenu.java):
Alguns métodos de ajuda (para mim, em static Functions.java):
Então, os layouts:
Layout do menu (res / layout / menu.xml)
Layout dos itens da lista (res / layout / menu_listitem.xml):
Como usá-lo:
Em seu
onCreate()
:No manipulador do botão home da ActionBar:
É isso aí!
E agora, uma pequena captura de tela dele em ação:
Pelo que eu sei, está funcionando. Se você tiver algum problema ou minhas explicações não forem claras, entre em contato comigo!
EDITAR:
ExtendedViewPager
&ExtendedPagerStrip
:ExtendedViewPager:
ExtendedPagerTabStrip:
Eu uso isso
SlideMenu
para uma atividade com umViewPager
comPagerTabStrip
de guias, como Talk, Mercado etc. Você não pode desativar esses pontos de vista em uma maneira fácil, por isso, as duas classes acima apenas estendê-los para parar oonTouch
evento quando desactivada.fonte
Existem várias tentativas de fazer isso, no entanto, ainda não encontrei uma lib ou código-fonte sobre como implementá-lo com êxito com a barra de ação em todos os níveis da API. Uma libra promissora está aqui
https://github.com/jfeinstein10/SlidingMenu
aqui está um vídeo do aplicativo de exemplo .
aqui está o Google Play link do aplicativo .
Isso funciona com ActionbarSherlock. Você terá que construir a biblioteca SlidingMenu com ABS para fazê-lo funcionar. Funciona e parece ótimo!
fonte
Fiz um resumo da implementação original e adicionei análise XML, bem como
autodetection
de um possível presenteactionbar
, para que funcione com o nativo e também com uma barra de ação de suporte, comoActionBarSherlock
.A coisa toda agora é um projeto de biblioteca junto com um aplicativo de exemplo e é descrito em Menu deslizante para android. Agradecimentos ao scirocco pela ideia inicial e código!
fonte
Se você estiver usando o nível de API maior que 11, você pode usar uma abordagem muito mais simples inspirada na resposta dada por @Scirocco
A ideia aqui é usar
ValueAnimator
isso transforma e não apenas animar o layout principal com a barra de ação, para que você possa interagir com a visualização inflada que deseja usar como um painel deslizante. Você deve substituir os valores codificados por algo que seja útil para seu aplicativo.Eu espero que isso ajude :)
fonte
Bem, atualmente estou trabalhando em um projeto e encontrei menu deslizante, pesquisei, mas fico muito desapontado ao ver que ninguém deu algum código ou alguma dica de como começar a fazer um menu deslizante, mas todos deram links para alguns projetos / bibliotecas do github para usar, decidi fazer sozinho e finalmente tenho meu próprio menu deslizante pronto ...
Passei dois dias nisso
1. em fazer animações de deslizamento
2. sobre como fazê-lo funcionar com todas as resoluções de tela
É realmente fácil e simples, uma vez que você tenha alguma ideia sobre animações , eu li em alguns lugares, não é sensato reinventar a roda (pessoas que estão se referindo ao código-fonte do github do menu deslizante), mas eu acredito que você deveria pelo menos uma vez tente fazer o seu próprio para ter uma ideia de como ele realmente funciona e funciona: P
então esta é uma imagem de como meu menu deslizante funcionará
1.Find.xml
//later in the code it will be refer as findLayout
2.Filter.xml
//later in code refer as FilterLayout
No find.xml incluí o filter.xml inicialmente, que é invisível
Agora FilterAnimation.java
Now Find.java
Aqui estão as animações res / anim
1.filter_slide_in.xml
2.filter_slide_out.xml
3.other_slide_in.xml
4.other_slide_out.xml
Lá está você um menu deslizante completo funcional e funcional, e você pode personalizá-lo para atender às suas necessidades, se alguém ainda tiver problemas de configuração, fique à vontade para perguntar, é um prazer ajudá-lo :)
fonte
Eu criei minha própria solução para deslizar a visualização e revelar um menu abaixo, já que muitas outras soluções pareciam não funcionar em versões mais antigas do Android ou não tinham instruções adequadas sobre como fazê-lo funcionar.
Minha solução possui os seguintes recursos:
A solução usa um layout personalizado, chamado SlidingMenuLayout, ao qual espera-se que você adicione 2 visualizações. A primeira visualização que você adiciona é o menu, a segunda é a visualização principal.
A maneira mais simples de adicionar o layout ao seu projeto existente é substituir o
setContentView()
método da sua Activity :Neste exemplo,
MenuView
é a visualização que realmente mostra o menu. Depende de você implementar essa visão.Finalmente, você pode adicionar um botão (normalmente no canto superior esquerdo de sua visualização principal), que chama
openMenu()
oucloseMenu()
no layout conforme apropriado.O código para
SlidingMenuLayout
é encontrado na página do projeto GitHub .fonte
Para aqueles que usam o SlidingMenu biblioteca ( https://github.com/jfeinstein10/SlidingMenu ), existe uma maneira de la e parece funcionar! Com a ajuda de @Scirocco coloque isso em seu
onCreate
para a atividade:basicamente, o que ele faz é substituir a
linearlayout
visualização na decoração peloslidingmenu
.Aviso: Eu apenas testei levemente, mas parece funcionar.
fonte
esta é a minha classe estende
SlidingPaneLayout
. Pode deslizar com açãofonte