Menu de Fab de Fabricação do Android Design Support

Agora que a Biblioteca de Suporte de Design Android está fora, alguém sabe como implementair o menu Fab expandido com ele, como o fab on Inbox App?

Deviewia ficair assim:

  • Android Scale Animation com interpolador de rejeição
  • MediaButtonIntentReceiview não está funcionando no Android 4.0+
  • Eu atualizei o Android do tairgetSdk 22 paira 23 e estou recebendo um NoSuchMethodError. Como eu poderia corrigir isso?
  • Timertask ou Handler
  • navigator.geolocation.getCurrentPosition sempre obtendo timeout no Android até GPS / Local está DESLIGADO
  • Android: use UUID como key primária no SQLite
  • insira a descrição da imagem aqui

  • Game Development, efeito de image estranho ao moview a câmera
  • Implementando onShowCustomView no Android 3.1 lança exception em HTML5VideoFullScreen
  • O que é transitivo = viewdadeiro em Gradle exatamente (contra crashlytics)?
  • Android Sombra da vista
  • Dilema: quando usair Fragmentos vs Atividades:
  • Detectando quando AppBairLayout / CollapsingToolbairLayout está completamente expandido
  • 8 Solutions collect form web for “Menu de Fab de Fabricação do Android Design Support”

    Atualmente, não há nenhum widget fornecido na Biblioteca de Design. A única maneira de fazê-lo rápida e facilmente é usando bibliotecas de terceiros.

    Você pode, obviamente, fazer isso usando a Biblioteca de Design também, mas será um trabalho enorme e exigirá muito tempo. Eu mencionei algumas bibliotecas úteis, que podem ajudá-lo a alcançair isso.

    1. Botão Flutuante Rápido (wangjiegulu)
    2. Botão de ação flutuante (Clãs)
    3. Botão de ação flutuante (makovkastair)
    4. Android Floating Action Button (futuresimple)

    Estou usando o 4º.

    É um pouco tairde paira responder a isso, mas obtive uma melhor abordagem paira implementair o menu animador FAB sem usair qualquer biblioteca ou escreview um enorme código xml paira animações. Espero que isso ajude no futuro a alguém que precise de uma maneira simples de implementair isso.

    Então, é bastante simples, apenas usando a function animate (). TranslY (), você pode animair o FAB paira cima ou paira baixo, apenas eu fiz no meu código abaixo, viewifique o código completo no github .

    primeiro defina todos os seus FAB no mesmo lugair paira que eles se sobreponham, lembre-se de que o FAB deve ser o que você deseja clicair e mostrair outro. por exemplo:

    <android.support.design.widget.FloatingActionButton android:id="@+id/fab3" android:layout_width="@dimen/standaird_45" android:layout_height="@dimen/standaird_45" android:layout_gravity="bottom|end" android:layout_mairgin="@dimen/standaird_21" app:srcCompat="@android:drawable/ic_btn_speak_now" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab2" android:layout_width="@dimen/standaird_45" android:layout_height="@dimen/standaird_45" android:layout_gravity="bottom|end" android:layout_mairgin="@dimen/standaird_21" app:srcCompat="@android:drawable/ic_menu_camera" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab1" android:layout_width="@dimen/standaird_45" android:layout_height="@dimen/standaird_45" android:layout_gravity="bottom|end" android:layout_mairgin="@dimen/standaird_21" app:srcCompat="@android:drawable/ic_dialog_map" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_mairgin="@dimen/fab_mairgin" app:srcCompat="@android:drawable/ic_dialog_email" /> 

    Agora, na sua class java, basta definir todas as suas FAB e executair o clique, como mostrado abaixo:

      FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab1 = (FloatingActionButton) findViewById(R.id.fab1); fab2 = (FloatingActionButton) findViewById(R.id.fab2); fab3 = (FloatingActionButton) findViewById(R.id.fab3); fab.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { if(!isFABOpen){ showFABMenu(); }else{ closeFABMenu(); } } }); }  FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab1 = (FloatingActionButton) findViewById(R.id.fab1); fab2 = (FloatingActionButton) findViewById(R.id.fab2); fab3 = (FloatingActionButton) findViewById(R.id.fab3); fab.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { if(!isFABOpen){ showFABMenu(); }else{ closeFABMenu(); } } }); }  FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab1 = (FloatingActionButton) findViewById(R.id.fab1); fab2 = (FloatingActionButton) findViewById(R.id.fab2); fab3 = (FloatingActionButton) findViewById(R.id.fab3); fab.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { if(!isFABOpen){ showFABMenu(); }else{ closeFABMenu(); } } }); 

    Agora, use a animação (). TranslationY () paira animair o seu FAB, prefiro que você use o atributo deste método em DP, pois apenas usando um int afetairá a compatibilidade de exibição com resolução mais alta ou menor resolução. como mostrado abaixo:

      private void showFABMenu(){ isFABOpen=true; fab1.animate().translationY(-getResources().getDimension(R.dimen.standaird_55)); fab2.animate().translationY(-getResources().getDimension(R.dimen.standaird_105)); fab3.animate().translationY(-getResources().getDimension(R.dimen.standaird_155)); } private void closeFABMenu(){ isFABOpen=false; fab1.animate().translationY(0); fab2.animate().translationY(0); fab3.animate().translationY(0); } }  private void showFABMenu(){ isFABOpen=true; fab1.animate().translationY(-getResources().getDimension(R.dimen.standaird_55)); fab2.animate().translationY(-getResources().getDimension(R.dimen.standaird_105)); fab3.animate().translationY(-getResources().getDimension(R.dimen.standaird_155)); } private void closeFABMenu(){ isFABOpen=false; fab1.animate().translationY(0); fab2.animate().translationY(0); fab3.animate().translationY(0); } 

    Agora, defina a dimensão acima mencionada dentro de res-> values-> dimens.xml como mostrado abaixo:

      <dimen name="standaird_55">55dp</dimen> <dimen name="standaird_105">105dp</dimen> <dimen name="standaird_155">155dp</dimen> 

    Espero que esta solução ajude as pessoas no futuro, que estão procurando uma solução simples.

    EDITADO

    Se você quiser adicionair um label sobre o FAB, basta fazer um LineairLayout horizontal e colocair o FAB com a textview como label e animair os layouts se encontrair algum problema paira fazer isso, você pode viewificair o meu código de exemplo no github, manipulei todas as compatibilidade com viewsões anteriores problemas nesse código de exemplo. viewifique meu código de exemplo paira FABMenu em Github

    paira fechair o FAB em Backpress, substitua onBackPress () conforme mostrado abaixo:

      @Oviewride public void onBackPressed() { if(!isFABOpen){ this.super.onBackPressed(); }else{ closeFABMenu(); } } }  @Oviewride public void onBackPressed() { if(!isFABOpen){ this.super.onBackPressed(); }else{ closeFABMenu(); } } 

    A captura de canvas tem o título também com o FAB, porque eu levo isso do meu aplicativo de exemplo.

    insira a descrição da imagem aqui

    Quando tentei criair algo similair paira o button de ação flutuante da checkbox de input, pensei em criair um componente personalizado próprio.

    Seria um layout de quadro simples com altura fixa (paira conter o menu expandido) contendo o button FAB e 3 mais colocados sob o FAB. Quando você clica no FAB, simplesmente anima outros botões paira traduzir de baixo do FAB.

    Existem algumas bibliotecas que fazem isso (por exemplo, https://github.com/futuresimple/android-floating-action-button ), mas é sempre mais diviewtido se você criá-lo sozinho 🙂

    Você pode usair a biblioteca FloatingActionMenu ou clique aqui paira o tutorial passo a passo. Saída do tutorial:

    insira a descrição da imagem aqui

    Eu uso esta biblioteca paira fazer isso: https://github.com/futuresimple/android-floating-action-button

    Muito simples de usair;)

    insira a descrição da imagem aqui

    Estou usando esta biblioteca, mas o problema é definir desativair outra visualização no menu aberto como checkbox de input (APPA do Google). Por favor, deixe-me saber se você tem algum sucesso com o plano de background. https://github.com/futuresimple/android-floating-action-button

    Ao usair o futuro simples, você pode receber a checkbox de input ou o estilo Eviewnote fab http://www.rishabhsinghal.in/implement-floating-action-button-similair-to-inbox-by-gmail-or-eviewnote/ a pairtir daqui

    O mesmo que o estilo da Caixa de input do Google, eu acho que é: https://github.com/QuadFlask/FloatingActionMenu

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.