FloatingActionButton exemple avec le Soutien de la Bibliothèque
Récemment, j'ai lu ces messages:
Android Support À La Conception De La Bibliothèque
Android Support Library, révision 22.2.0
Mais, aucun d'entre eux de me donner un détail exemple sur la création d'une nouvelle FloatingActionButton
. Si difficile à comprendre, je pose cette question.
Quelqu'un peut-il me donner un exemple à ce sujet?
Toute aide sera appréciée. Merci à l'avance.
MODIFIER
Je viens de trouver quelques questions sur FloatingActionButton
(FAB), et je veux améliorer une autre réponse. Voir ma réponse ci-dessous.
Vous devez vous connecter pour publier un commentaire.
Dans votre
build.gradle
fichier, ajouter ceci:AndroidX Remarque: Google est l'introduction de nouvelles AndroidX les bibliothèques d'extension de remplacer les anciennes Bibliothèques de prise en charge. Pour utiliser AndroidX, assurez-vous d'abord vous avez mis à jour votre
gradle.propriétés
fichier, éditébuild.gradle
pour définircompileSdkVersion
à28
(ou supérieur), et d'utiliser la ligne suivante à la place de la précédentecompile
un.Prochaine, dans votre
themes.xml
oustyles.xml
ou que ce soit, assurez-vous de régler ce problème - votre application accent de couleur-- et la couleur de votre FAB sauf si vous la remplacez (voir ci-dessous):Dans la mise en page XML:
Vous pouvez voir plus d'options dans la docs (
setRippleColor
, etc.), mais une remarque:Un autre fait intéressant-pour changer la couleur de fond, juste un FAB, ajouter:
(par exemple pour changer en rouge) pour le code XML ci-dessus.
De toute façon, dans le code, après l'Activité ou du Fragment de la vue est gonflé....
Observations:
(à l'aide d'un RelativeLayout, par exemple), avec, disons, un négatif en bas
mise en page de la marge de chevauchement de la frontière, vous remarquerez qu'une question:
le FAB taille est en fait très différents sur lollipop vs
pré-sucette. Vous pouvez voir QUE cela visuelle de la mise en page de l'éditeur
lorsque vous retournez l'entre Api-- tout à coup, la "bouffe" lorsque vous passez à
pré-sucette. La raison de la taille supplémentaire semble être que l'
l'ombre s'étend de la taille de la vue dans toutes les directions. Donc, vous avez à
compte de cela lorsque vous réglez la FAB de la marge si elle est à proximité d'autres
des trucs.
Ici un moyen de supprimer ou de
changer le rembourrage s'il y a trop:
Aussi, j'allais par programme place la FAB sur la "couture"
entre les deux régions dans un RelativeLayout en le saisissant par le FAB en hauteur,
en divisant par deux, et en utilisant ce que l'offset de la marge. Mais
myFab.getHeight() a renvoyé à zéro, même après le point de vue a été gonflé, il
semblait. Au lieu de cela, j'ai utilisé un ViewTreeObserver pour obtenir la hauteur seulement
après avoir disposé et ensuite de définir la position. Voir cette astuce
ici. Il ressemblait à ceci:
Ne sais pas si c'est la bonne façon de le faire, mais il semble fonctionner.
la diminution de l'altitude.
Si vous voulez que le FAB sur "couture", vous pouvez utiliser
layout_anchor
etlayout_anchorGravity
voici un exemple:N'oubliez pas que vous pouvez automatiquement le bouton de sauter hors de la voie lorsque un Buvette vient en l'enveloppant dans un CoordinatorLayout.
Plus:
android:backgroundTint="#FF0000"
par exemple à la FloatingActionBar dans le XML. (s'ajoutant à la réponse)sp
dans le evelation de la propriété. Il devrait êtreapp:elevation="4dp"
FloatingActionButton
à unCoordinatorLayout
, vous pouvez utiliserapp:layout_anchor="element_with_seam"
etapp:layout_anchorGravity="bottom|right|end"
à la position de la FAB correctement au-dessus d'un joint - voir le activity_detail mise en page de cheesesquarexmlns:app="http://schemas.android.com/apk/res-auto"
partie dans un ViewGroup qui contient le FAB.backgroundTint
travail également sur la pré-sucette appareils?Je viens de trouver quelques questions sur FAB et je veux améliorer une autre réponse.
setRippleColor question
Donc, la question viendra une fois que vous l'ondulation de la couleur (FAB couleur pressé) par programmation grâce à
setRippleColor
. Mais, nous avons encore une autre façon de le définir, c'est à dire en appelant le:Votre projet a besoin de cette structure:
Et le code de
fab_ripple_color.xml
est:Enfin, modifier votre FAB légèrement:
Pour l'API de niveau 21 et plus, ensemble de la marge à droite et en bas à 24dp:
FloatingActionButton des guides de conception
Comme vous pouvez le voir sur mon FAB code xml ci-dessus, j'ai mis:
Par la définition de ces attributs, vous n'avez pas besoin de
layout_marginTop
etlayout_marginRight
de nouveau (uniquement sur pré-Sucette). Android placera automatiquement sur la droite du corned côté de l'écran, la même que la normale FAB dans Android Lollipop.Ou, vous pouvez l'utiliser dans
CoordinatorLayout
:elevation
et 12dppressedTranslationZ
, selon ce guide de Google.pressedTranslationZ
. Je ne le savais pas.app:elevation
etapp:pressedTranslationZ
valeurs. Leur valeur par défaut est celui défini dans la conception de Matériel de lignes directrices. De toute façon, l'e.chichkine est droite, les valeurs sontapp:elevation:6dp
etpressedTranslationZ:6dp
. Vous pouvez le vérifier dans le com.android.de soutien.conception code sourceFloatingActionButton
s'étendImageView
. Donc, c'est simple comme l'introduction d'unImageView
dans votre mise en page. Voici un exemple XML.app:borderWidth="0dp"
est ajoutée à une solution de contournement pour l'élévation des questions.pour AndroidX utiliser comme