Comment créer un bouton d'action flottante ( FAB ) dans Android, utilisant AppCompat v21 ?

? Salvuccio96 @ | Original: StackOverFlow

Je voudrais créer un bouton d'action flottante ( pour ajouter des éléments à une liste image ), comme Google Calendar, conservant la compatibilité avec les versions pré- sucette Android (avant 5.0 ) .

Je ai créé cette mise en page:

Activité main_activity.xml :

<LinearLayout ... >

     <include
         layout="@layout/toolbar"/>

     <RelativeLayout ... >

     <!-- My rest of the layout -->

          <!-- Floating action button -->
          <ImageButton style="@style/AppTheme"
                     android:layout_width="60dp"
                     android:layout_height="60dp"
                     android:text="New Button"
                     android:id="@+id/button"
                     android:src="@drawable/ic_fab"
                     android:background="@drawable/fab"
                     android:layout_alignParentBottom="true"
                     android:layout_alignParentRight="true"
                     android:layout_marginBottom="24dp"
                     android:layout_marginRight="24dp"/>

     </RelativeLayout>

 </LinearLayout>

Fab.xml Drawable :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="oval">
    <solid android:color="#ffa48bc0"/>
</shape>

style de styles.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#ff1d79b1</item>
        <item name="colorPrimaryDark">#ff084d95</item>
    </style>
</resources>

Le résultat est similaire, mais il ne est pas la trame de fond, une caractéristique de conception du matériel :

Flottante sur le bouton d'action Calendrier :

Comment créer un bouton d'action flottante ( FAB ) dans Android, utilisant AppCompat v21 ?

Flottante sur le bouton d'action de mon application:

Comment créer un bouton d'action flottante ( FAB ) dans Android, utilisant AppCompat v21 ?

Comment puis-je ajouter l'ombrage à mon bouton ?

Je ai déjà utilisé l'élévation de l'attribut, mais ne fonctionne pas



Top 5 Respuesta

1user3249477 @

Ajouter le rembourrage et d'élévation :

 android:elevation="10dp"
 android:padding="10dp"


2Oleksii Kropachov @

Essayer https://github.com/shamanland/floating-action-button, il prend en charge l'ombre, il est «____» et soutient également minSdkVersion=7 attribut pour android:elevation implicitement .

Original post est http://stackoverflow.com/a/25739038/1891118 .

3QAMAR @

Il ya un tas de bibliothèques là-bas ajouter un (Action bouton flottant ) FAB dans votre application, Voici quelques-uns d'entre eux que je connais .

https://github.com/makovkastar/FloatingActionButton

https://github.com/futuresimple/android-floating-action-button

https://github.com/navasmdc/MaterialDesignLibrary

Toutes ces bibliothèques sont pris en charge sur les dispositifs de pré- sucette, minimum api 8

4Justin Pollard @

Je ai généralement utilisé dessinables xml pour créer l'ombre / altitude sur un widget pré- sucette. Voici, par exemple, est un étirable xml qui peut être utilisé sur les appareils pré- sucette pour simuler l'élévation de la touche d'action flottante .

API-21

Au lieu de <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="8px"> <layer-list> <item> <shape android:shape="oval"> <solid android:color="#08000000"/> <padding android:bottom="3px" android:left="3px" android:right="3px" android:top="3px" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="#09000000"/> <padding android:bottom="2px" android:left="2px" android:right="2px" android:top="2px" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="#10000000"/> <padding android:bottom="2px" android:left="2px" android:right="2px" android:top="2px" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="#11000000"/> <padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="#12000000"/> <padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="#13000000"/> <padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="#14000000"/> <padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="#15000000"/> <padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="#16000000"/> <padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="#17000000"/> <padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" /> </shape> </item> </layer-list> </item> <item> <shape android:shape="oval"> <solid android:color="?attr/colorPrimary"/> </shape> </item> </layer-list> vous pouvez choisir ne importe quelle couleur . Voici une capture d'écran du résultat :

Comment créer un bouton d'action flottante ( FAB ) dans Android, utilisant AppCompat v21 ?

5Shell Software @

Voici une aditional gratuitement https://github.com/shell-software/fab Il possède de nombreuses personnalisations et nécessite la version de SDK 9 et supérieur

Comment créer un bouton d'action flottante ( FAB ) dans Android, utilisant AppCompat v21 ?

https://www.youtube.com/watch?v=skSApXvi4xM