Agora que a Android Design Support Library está pronta, alguém sabe como implementar o menu Fab expandido, como o Fab no Inbox App?
Deve ficar assim:
Agora que a Android Design Support Library está pronta, alguém sabe como implementar o menu Fab expandido, como o Fab no Inbox App?
Deve ficar assim:
Respostas:
Atualmente, não há nenhum widget fornecido na Biblioteca de Design. A única maneira de fazer isso de maneira rápida e fácil é usando bibliotecas de terceiros.
Obviamente, você também pode fazer isso usando a Biblioteca de projetos, mas será um trabalho enorme e exigirá muito tempo. Mencionei algumas bibliotecas úteis, que podem ajudá-lo a conseguir isso.
Eu estou usando o quarto.
fonte
Tem uma abordagem melhor para implementar o menu FAB de animação sem usar nenhuma biblioteca ou para escrever um enorme código xml para animações. espero que isso ajude no futuro para alguém que precise de uma maneira simples de implementar isso.
Apenas usando a
animate().translationY()
função, você pode animar qualquer visualização para cima ou para baixo, exatamente como fiz no meu código abaixo, verifique o código completo no github . Caso esteja procurando o mesmo código no kotlin, você pode fazer o checkout do menu de animação do FAB do repositório de códigos kotlin .primeiro defina todas as suas FAB no mesmo local para que elas se sobreponham; lembre-se de que a FAB deve ser o que você deseja clicar e mostrar a outra. por exemplo:
Agora, na sua classe java, basta definir todo o seu FAB e executar o clique como mostrado abaixo:
Use o
animation().translationY()
para animar o seu FAB, prefiro que você use o atributo desse método no DP, pois apenas o uso de um int afetará a compatibilidade de exibição com resolução mais alta ou mais baixa. como mostrado abaixo:Agora defina a dimensão acima mencionada em res-> values-> dimens.xml, como mostrado abaixo:
Esperamos que esta solução ajude as pessoas no futuro, que estão procurando uma solução simples.
Se você quiser adicionar um rótulo ao FAB, basta pegar um LinearLayout horizontal e colocar o FAB com textview como rótulo e animar os layouts se encontrar algum problema, verifique o meu código de exemplo no github, eu lidei com toda a compatibilidade com versões anteriores problemas nesse código de exemplo. verifique meu código de exemplo para o FABMenu no Github
para fechar o FAB no Backpress, substitua onBackPress () conforme mostrado abaixo:
A captura de tela tem o título também com a FAB, porque eu a retiro do meu exemplo de aplicativo presente ingithub
fonte
Primeiro, crie os layouts de menu no arquivo xml do layout de atividade. Por exemplo, um layout linear com orientação horizontal e inclua um TextView para etiqueta e um Botão de ação flutuante ao lado do TextView.
Crie os layouts de menu conforme sua necessidade e número.
Crie um botão de ação flutuante base e, ao clicar, altere a visibilidade dos layouts de menu.
Por favor, verifique o código abaixo para referência e para mais informações confira meu projeto no github
Projeto de checkout do Github
Essas são as animações
Animação de abertura do menu FAB:
Animação de encerramento do menu FAB:
Então, na minha atividade, simplesmente usei as animações acima para mostrar e ocultar o menu FAB:
Mostrar menu Fab:
Fechar Menu Fab:
Aqui está a classe Activity -
Aqui estão as capturas de tela
fonte
Mais uma biblioteca implementando a Discagem Rápida nas diretrizes de Design de Materiais:
https://github.com/leinardi/FloatingActionButtonSpeedDial
fonte
Quando tentei criar algo semelhante ao botão de ação flutuante da caixa de entrada, pensei em criar o próprio componente personalizado.
Seria um layout de quadro simples com altura fixa (para conter o menu expandido) contendo o botão FAB e mais 3 colocados sob o FAB. Quando você clica no FAB, basta animar outros botões para traduzir sob o FAB.
Existem algumas bibliotecas que fazem isso (por exemplo, https://github.com/futuresimple/android-floating-action-button ), mas é sempre mais divertido se você criar você mesmo :)
fonte
layout_anchor
elayout_anchorGravity
não está trabalhando para mimVocê pode usar a biblioteca FloatingActionMenu ou clicar aqui para obter um tutorial passo a passo. Saída do tutorial:
fonte
Eu uso esta biblioteca para fazer isso: https://github.com/futuresimple/android-floating-action-button
Muito simples de usar;)
fonte
layout_anchor
elayout_anchorGravity
não está trabalhando para mimOutra opção para o mesmo resultado com a animação ConstraintSet:
1) Coloque todas as visualizações animadas em um ConstraintLayout
2) Anime-o a partir de código como este (se você quiser mais alguns efeitos, é com você .. este é apenas um exemplo)
menuItem1 e menuItem2 é o primeiro e o segundo FABs no menu, descriptionItem1 e descriptionItem2 é a descrição à esquerda do menu, parentConstraintLayout é a raiz ConstraintLayout que contém todas as visualizações animadas, isMenuOpened é alguma função para alterar o sinalizador aberto / fechado no estado
Eu coloquei o código de animação no arquivo de extensão, mas não é necessário.
fonte