0
votes

SwipereFreshLayout est-il compatible avec un adaptateur qui a plusieurs vitypePe?

Je fais une liste, cela aura plus d'articles lorsque je vais au bas de la liste. Je veux que cette liste soit à la rafrable aussi, j'ai besoin d'un SwipeefreshLayout code>.

Disons que j'ai un adaptateur comme celui-ci: P>

private fun reloadOrders() {
    viewModel.setLoading()
    refreshLayout?.isRefreshing = false
    Observable.timer(1, TimeUnit.SECONDS)
            .subscribe { getOrders() }
}


6 commentaires

Où est le code qui file votre SwipereFreshLayout avec l'adaptateur?


@Martinmarconcini dans toutes mes autres vues, je ne lie jamais mon SwipereFreshLayout avec mon recyclageview, et cela fonctionne toujours.


Et où est votre onefrohlistener ? J'ai utilisé cette chose cinq ou six fois au cours des 3-4 dernières années. J'ai toujours utilisé un auditeur (comme décrit ici): développeur.android.com / Formation / Swipe / Répondez-la requête - Demande (s'il y a une autre façon de l'utiliser, je ne suis pas au courant, je demande à la curiosité)


@Martinmarconcini, je pense que je fais que je fais comme décrit dans votre lien homme, mais le onefrohlistener n'est jamais appelé. Lorsque je balaye, aucune "bulle" avec une flèche de barres de progression se présente sur le dessus, comme cela devrait. J'ai modifier ma question pour que vous puissiez voir comment j'appelle l'actualisation.


Si vous définissez un point d'arrêt dans les reloaders, il n'est pas appelé? Hmmm


Devinez longuement: que se passe-t-il si vous changez la hauteur de votre vue Recycler sur match_parent à la place? Je suis curieux de voir comment le récipient de balayage se comporte, mais comme vous l'enfilez pour couvrir tout l'espace à son parent, il ne serait pas préjudice auprès du RV sauvegarde le calcul de la hauteur. (En outre, votre largeur de mise en page Swipe doit être 0DP car vous l'enflammer au parent au début / la fin, vous devez donc laisser le moteur CL faire son travail) (en pratique cela peut être inoffensif car je pense que cl 2.x ignore ceux-ci, mais je ne suis pas sûr)


3 Réponses :


0
votes

Répondre à votre question, la compatibilité n'est pas le problème que vous rencontrez. Pas sûr de la taille de votre mise en page, car sa hauteur est 0 dp. Je jouerais avec la tailles de vue et afficher la hiérarchie.


1 commentaires

La taille est 0DP car il utilise contraintlayout (pouvant être déduite par le fait qu'il a des contraintes dans le XML)



1
votes

Je crois que ce qui se passe, c'est que le recyclerview reprend les événements ONTOUCH de SwiperefreshLayout. Vous pouvez essayer d'écraser linéarlayout et sa méthode Canscrollittiquement () pour renvoyer false. Bravo!


2 commentaires

Votre méthode a fonctionné, car je peux maintenant tirer pour rafraîchir mon SwipeefreshLayout . Cependant, je ne peux évidemment pas faire défiler dans mon recyclerview maintenant. Toute solution pour cela?


Nevermind, j'ai trouvé une solution! Je viens d'ajouter un Nestécrollview à l'intérieur de mon SwipeefreshLayout . Dans ce NESTCRollView , j'ai mis mon recyclerview . Ça marche maintenant!



0
votes

ok donc grâce à @ r2rek, j'ai trouvé une solution qui a fonctionné pour moi:

dans le code, nous créons une classe qui étend linearlayoutmanager méthode Canscrollittico () < / Code> Pour toujours retourner faux: xxx

puis, lorsque nous init notre recyclerview , nous appliquons cette classe à notre LayoutAutManager : xxx

Ceci vous permettra d'actualiser, mais vous ne pourrez pas faire défiler dans votre recyclerview (DUH).
Pour résoudre ce problème, ajoutez un NESTCrollView dans votre XML, comme suit: xxx

Vous pouvez maintenant faire défiler votre recyclerview et tirez pour rafraîchir avec votre SwipeefreshLayout .

Je pense que cette méthode est un peu hacky, donc si quelqu'un a une meilleure solution, n'hésitez pas à nous dire! < / p>


0 commentaires