Comment créer un flottant sur le bouton d'action (FAB) en android, en utilisant AppCompat v21?
Je voudrais créer un flottant sur le bouton d'action (pour ajouter des éléments à une liste), tels que google agenda, le maintien de la compatibilité avec les pré-versions d'Android lollipop (avant 5.0).
J'ai créé cette 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>
Drawable fab.xml:
<?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 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 n'y a pas l'ombre, une caractéristique de la conception de matériel:
Calendrier variable du bouton d'action:
Mon application flottant sur le bouton d'action:
Comment puis-je ajouter les ombres à mon bouton?
J'ai déjà utilisé l'attribut d'élévation, mais ne fonctionne pas
- L'élévation de l'API est en Sucette uniquement, avez-vous essayer sur une Sucette appareil?
- C'est probablement le moment où vous acceptez l'une des réponses données.
- En fait, sur mon 4.4.2 Samsung Galaxy S III, l'ombre est là, grâce à AppCompat.
Vous devez vous connecter pour publier un commentaire.
Il n'est plus nécessaire pour la création de votre propre FAB, ni l'utilisation d'un tiers de la bibliothèque, il a été inclus dans AppCompat 22.
https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html
Il suffit d'ajouter le nouveau support de la bibliothèque de conception dans votre gradle-fichier:
...et vous êtes bon pour aller:
The background color of this view defaults to the your theme's colorAccent. If you wish to change this at runtime then you can do so via setBackgroundTintList(ColorStateList).
J'ai généralement utilisé xml un drawable pour créer de l'ombre/altitude sur un pré-sucette widget. Ici, par exemple, est un xml drawable qui peut être utilisé sur la pré-sucette appareils pour simuler le floating action du bouton d'élévation.
En place de
?attr/colorPrimary
vous pouvez choisir n'importe quelle couleur. Voici une capture d'écran du résultat:<solid android:color="#17000000"/>
Pouvez vous s'il vous plaît le but de créer sept ovales couches à la même position?<padding/>
attribut travaille dans la liste des couches. Plutôt que de chaque forme en agissant comme un frère pour les autres, les uns par la suite défini la forme agit comme un enfant de la précédemment défini la forme quand il s'agit de rembourrage. De plus, chaque par la suite défini la forme est dessinée au-dessus de la précédemment défini la forme. Donc, rembourrage de 1px sur la première forme de ses frontières seront 1px l'extérieur des frontières du côté de la forme, même si la prochaine forme est dessinée au-dessus d'elle.Il y a un tas de bibliothèques ajouter un FAB(Flottant sur le Bouton d'Action) dans votre application, Voici quelques-uns d'entre eux, je le Sais.
makovkastar FAB
futuersimple Composite FAB
La Conception de matériel de bibliothèque qui comprend FAB trop
Toutes ces bibliothèques sont pris en charge sur les pré-sucette appareils, minimum api 8
Ici est un supplément gratuit Flottant sur le Bouton d'Action de la bibliothèque pour Android
Il a de nombreuses personnalisations et nécessite SDK de la version 9
Démo Vidéo
@Justin Pollard code xml fonctionne vraiment bien. Comme une note de côté, vous pouvez ajouter un effet d'entraînement par le code xml suivant les lignes.
Essayer cette bibliothèque, il prend en charge l'ombre, il n'y a
minSdkVersion=7
et prend également en chargeandroid:elevation
attribut pourAPI-21
implicitement.Post Original est ici.
Ajouter le remplissage et l'altitude:
elevation
a été ajouté dans l'api 21, comment cela pourrait-il fonctionner?