编程知识 cdmana.com

Android share: android side slide aurait pu être si élégant, Android Driven Development Books

.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)
;

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Android

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
}
})
;

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Développement mobile_02

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();
}
})
;

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Android_03

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
}
})
;

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Android_04

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
}
})
;

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Développement mobile_05

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();
}
})
;

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Android_06

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()
;

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Développement mobile_07

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()
;

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Android_08

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()
;

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Développement mobile_09

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 AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Développement mobile_10
behindMode AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Android_11
scaleMode AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Android_12
translateMode AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Android_13

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::

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Développement mobile_14

Ç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 tryAcceptMovingEttryAcceptSettlingMé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éécritureclampDistanceHorizontalEtclampDistanceHorizontalMé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

AndroidPartager:AndroidLe glissement latéral aurait pu être si élégant.,androidStimuler le développement de livres_Android_15

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

Scroll to Top