.setHorizontalDrawerView(textView)
.setScrimColor(0x2F000000)
//Réglage du facteur de liaison
// 0:Pas de liaison,Les effets visuels sont:Afficher le tiroir inférieur lorsque le corps principal se déplace
// 0~1: Demi - Liaison,Les effets visuels sont:La vue du tiroir a un effet de mouvement relatif entre le coefficient de liaison et le corps principal
// 1:Liaison complète,Les effets visuels sont:Le tiroir se déplace avec le corps principal(pixel by pixel)
.setRelativeMoveFactor(0.5F)
;
5. Une ligne de Code ajoute un effet de transparence coulissante
Effet de transparence du glissement latéral,Le glissement latéral peut être masquéview,Peut être utilisé pour la suppression de glissement latéral,Peut également être utilisé pour créer des effets de couverture
//Glissement latéral supprimer
SmartSwipe.wrap(view)
.addConsumer(new TranslucentSlidingConsumer())
.enableHorizontal() //Activer le glissement latéral à gauche et à droite
.addListener(new SimpleSwipeListener(){
@Override
public void onSwipeOpened(SmartSwipeWrapper wrapper, SwipeConsumer consumer, int direction) {
//Lorsque le glissement latéral s'ouvre,Supprimer
ViewParent parent = wrapper.getParent();
if (parent instanceof ViewGroup) {
((ViewGroup) parent).removeView(wrapper);
}
//adapter.removeItem(getAdapterPosition());// Peut également être utilisé à partir derecyclerViewSupprimer cet article dans
}
})
;
6. Une ligne de Code ajoute une fonction de reconnaissance des gestes de glissement latéral
En glissant,Seigneur.viewRestez immobile,Quand le doigt est relâché,Identifier la direction et la vitesse de glissement,Pour déterminer si la logique de glissement latéral correspondante est exécutée.
//demo:AvecStayConsumerFais - le.activityRetour latéral
SmartSwipe.wrap(this)
.addConsumer(new StayConsumer())
.enableAllDirections()
.addListener(new SimpleSwipeListener(){
@Override
public void onSwipeOpened(SmartSwipeWrapper wrapper, SwipeConsumer consumer, int direction) {
finish();
}
})
;
7. Une ligne de Code ajoute un effet Louvre
En cas de glissement latéralviewOuvre comme un Louvre,Affichage transparent de la couche inférieure.
Peut être utilisé pour faire des couvertures、Diagramme de rotation, etc.
//AvecShuttersConsumerRéaliser l'enlèvement latéral des stores
SmartSwipe.wrap(view)
.addConsumer(new ShuttersConsumer())
.enableHorizontal() //Activer le glissement latéral à gauche et à droite
.addListener(new SimpleSwipeListener(){
@Override
public void onSwipeOpened(SmartSwipeWrapper wrapper, SwipeConsumer consumer, int direction) {
//Lorsque le glissement latéral s'ouvre,Supprimer
ViewParent parent = wrapper.getParent();
if (parent instanceof ViewGroup) {
((ViewGroup) parent).removeView(wrapper);
}
//adapter.removeItem(getAdapterPosition());// Peut également être utilisé à partir derecyclerViewSupprimer cet article dans
}
})
;
8. Une ligne de Code ajoute un effet d'ouverture de porte
En glissant,Seigneur.viewDu Centre aux deux côtés comme une porte ouverte(En haut et en bas Ou Gauche et droite)Séparez - vous.,Affichage transparent de ses couches inférieures
Peut être utilisé pour faire des couvertures、Diagramme de rotation, etc.
//AvecDoorConsumerRéaliser l'enlèvement latéral des stores
SmartSwipe.wrap(view)
.addConsumer(new DoorConsumer())
.enableHorizontal() //Activer le glissement latéral à gauche et à droite
.addListener(new SimpleSwipeListener(){
@Override
public void onSwipeOpened(SmartSwipeWrapper wrapper, SwipeConsumer consumer, int direction) {
//Lorsque le glissement latéral s'ouvre,Supprimer
ViewParent parent = wrapper.getParent();
if (parent instanceof ViewGroup) {
((ViewGroup) parent).removeView(wrapper);
}
//adapter.removeItem(getAdapterPosition());// Peut également être utilisé à partir derecyclerViewSupprimer cet article dans
}
})
;
9. Une ligne de Code ajoute une courbe de Bessel pour retourner l'effet
En glissant,Afficher l'effet de retour d'une courbe de Bessel sur le bord du glissement latéral de la commande
Disponible pouractivityRetour、fragmentRetour,Également disponible pourwebviewRetour de/En avant!
//activityRetour latéral
SmartSwipe.wrap(this)
.addConsumer(new BezierBackConsumer())
.enableAllDirections()
.addListener(new SimpleSwipeListener() {
@Override
public void onSwipeOpened(SmartSwipeWrapper wrapper, SwipeConsumer consumer, int direction) {
finish();
}
})
;
10. Ajouter une ligne de code pour imiter WechatActivityEffet de retour du glissement latéral de liaison
C'est vrai,Dédié àactivityUn effet de retour latéral,Avec fonction de liaison
//activityRetour latéral
SmartSwipe.wrap(this)
.addConsumer(new ActivitySlidingBackConsumer(this))
//Réglage du facteur de liaison
.setRelativeMoveFactor(0.5F)
//Indique la direction dans laquelle le glissement latéral peut revenir,Par exemple::enableLeft() Seul le côté gauche peut glisser latéralement en arrière
.enableAllDirections()
;
11. Ajouter une ligne de codeActivityRetour de l'effet de glissement latéral des stores
C'est vrai,C'est aussi pouractivityUn effet de retour latéral,Affichage transparent précédentactivity
//activityRetour latéral
SmartSwipe.wrap(this)
.addConsumer(new ActivityShuttersBackConsumer(this))
.setScrimColor(0x7F000000)
.enableAllDirections()
;
12. Ajouter une ligne de codeActivityEffet de retour du glissement latéral de la porte ouverte
C'est vrai,C'est encore un endroit pouractivityL'effet d'un retour latéral,Affichage transparent précédentactivity
//activityRetour latéral
SmartSwipe.wrap(this)
.addConsumer(new ActivitySlidingBackConsumer(this))
.setRelativeMoveFactor(0.5F)
.enableAllDirections()
;
C'est une ligne de code?N'osez pas en avoir plus?
SmartSwipeLa plupart des utilisations peuvent être faites en une seule ligne de code par programmation en chaîne,APILes styles de conception sont les suivants:
SmartSwipe.wrap(…) //view or Activity
.addConsumer(…) //Ajouterconsumer
.enableDirection(…) //DésignationconsumerDans quelle direction les événements de glissement latéral sont reçus
.setXxx(…) //[Facultatif]Quelques autres paramètres
.addListener(…); //[Facultatif]Voilà.consumerAjouter un moniteur
En plus de l'effet de glissement latéral de la Fondation,Pour la commodité des développeurs,La classe d'outils est également encapsulée: SmartSwipeBack Et SmartSwipeRefresh
Une ligne de code implémente globalActivityRetour latéral
- Global n'a besoin que d'une seule ligne de code pour tout faireActivityRetour latéral
- Styles optionnels:Ouvrez la porte!、Louvre、Imitation de Wechat、ImitationQQEt imitationMIUICourbe de Bessel
- Aucun sujet transparent n'est nécessaire
- Il n'est pas nécessaire d'hériter d'unActivity
- Pas besoin d'intrusionxmlFichiers de mise en page
- Pas besoin d'intrusionBaseActivity
- Prise en charge du glissement latéral plein écran et(/Ou)Retour latéral du bord
- Soutien Allez./En bas./Gauche./A droite 4Retour latéral dans les directions
//Faux téléphoneQQLe geste de la main de
SmartSwipeBack.activityStayBack(application, null);
//Retour de glissement latéral transparent imitant l'effet de liaison de la bande Wechat
SmartSwipeBack.activitySlidingBack(application, null);
//Fermeture de la porte coulissante latéraleactivity
SmartSwipeBack.activityDoorBack(application, null);
//Fermeture du style des volets coulissants latérauxactivity
SmartSwipeBack.activityShuttersBack(application, null);
//Mimic milletMIUIEffet de retour de la courbe de Bessel du système
SmartSwipeBack.activityBezierBack(application, null);
Une ligne de code ajouter une fonction de rafraîchissement déroulante
Peut être utilisé pour n'importe quel view
//xxxModeLe deuxième paramètre estfalse, Indique que la direction de travail est longitudinale :Rafraîchir la liste déroulante&Charger plus
//Si le deuxième paramètre est défini àtrue, Indique que la direction de travail est transversale : Rafraîchir à droite & Tirez à gauche pour charger plus
SmartSwipeRefresh.drawerMode(view, false).setDataLoader(loader);
SmartSwipeRefresh.behindMode(view, false).setDataLoader(loader);
SmartSwipeRefresh.scaleMode(view, false).setDataLoader(loader);
SmartSwipeRefresh.translateMode(view, false).setDataLoader(loader);
Styles | Tableau des effets |
---|---|
drawerMode | ![]() |
behindMode | ![]() |
scaleMode | ![]() |
translateMode | ![]() |
headerEtfooter Vous pouvez utiliser des personnalisations cool de tiers view,Par exemple::Basé sur Ifxcyr/ArrowDrawableDe ArrowHeader,L'image de l'effet est la suivante::
Ça a l'air plutôt diaoDe, Mais je veux un effet de glissement latéral que tu n'as pas ici
Cela nécessite une personnalisation SwipeConsumerC'est,Les étapes sont les suivantes:
- Nouvelle classe,SuccessionSwipeConsumer
- [Facultatif] Quelques initialisations dans la méthode de construction (Besoincontext Propriétés que l'objet peut initialiser ,Peut être placéonAttachToWrapperInitialisation en méthode)
- [Facultatif] S'il y a une logique de capture supplémentaire , Peut réécrire le parent
tryAcceptMoving
EttryAcceptSettling
Méthodes - [Facultatif]RéécritureonSwipeAcceptedMéthodes, Comme il est maintenant établi que l'événement de glissement latéral a été capturé , Et la direction du glissement latéral (mDirection), Quelques travaux d'initialisation peuvent être effectués pour cet événement de glissement latéral
- [Facultatif]Réécriture
clampDistanceHorizontal
EtclampDistanceHorizontal
Méthodes, Le glissement latéral ne peut être effectué que si certaines conditions sont remplies - RéécritureonDisplayDistanceChangedMéthodes, Effectuer un glissement latéral spécifique UIPrésentation des effets
- [Facultatif]SiUI L'effet de rendu contient le mouvement du contrôle de mise en page ,Besoin de réécrireonLayoutMéthodes, Dans cette méthode, la disposition de la commande doit également être positionnée selon la logique du glissement latéral
- RéécritureonDetachFromWrapperMéthodes,Restaurer le site,Supprimer le courantconsumer Toutes les traces de changement
Effet d'étirement élastique intégré dans le cadre StretchConsumerPar exemple
Selon la distance de glissement latéral ,C'est exact.contentView Pour zoomer et Pan , Pour obtenir un effet d'étirement élastique
Les codes sont les suivants::
public class StretchConsumer extends SwipeConsumer {
@Override
En savoir plus et en discuter,Bienvenue sur notre planète de la connaissance!
Cliquez ici pour vous joindre à nous!
Il y a beaucoup de taureaux techniques de première ligne dans le troupeau,Il y a aussi les paysans qui luttent dans les petites usines ou les entreprises d'externalisation,Nous nous efforçons de créer une égalité,Haute qualitéAndroidCercle de communication,Il n'est pas nécessaire que la technologie de tout le monde se développe rapidement,Mais à long terme,Les yeux,Pattern,La direction du développement à long terme est la plus importante.
Il y en a ici.2000+Petit ami.,Laissez votre étude ne pas être seule~·
版权声明
本文为[Mb61c1dbbb44788]所创,转载请带上原文链接,感谢
https://cdmana.com/2022/01/202201150224017946.html