J'ai essayé d'ajouter auditeur Faire défiler StaggeredGridView là, je ne peux pas trouver un moyen d'ajouter qu'il n'y a pas mises en œuvre pour que je puisse voir
Github url https://github.com/maurycyw/StaggeredGridView MerciComment utiliser setScrollListener dans StaggeredGridView
Répondre
Créer une classe qui hérite SwipeRefreshLayout et substituez canChildScrollUp() pour vérifier si StaggeredGridView a atteint le sommet ou non, si elle a atteint le haut retour vrai sinon retourner false.
public class SwipeDownToRefrsh extends SwipeRefreshLayout{
PullToRefreshStaggeredGridView pullToRefreshStaggeredGridView;
public SwipeDownToRefrsh(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public void canChildScrollUp (PullToRefreshStaggeredGridView pullToRefreshStaggeredGridView) {
this.pullToRefreshStaggeredGridView = pullToRefreshStaggeredGridView;
}
@Override
public boolean canChildScrollUp() {
// TODO Auto-generated method stub
if (pullToRefreshStaggeredGridView == null) {
return true;
} else {
return !pullToRefreshStaggeredGridView.getRefreshableView().mGetToTop;
}
}
}
Dans votre activité ou Fragment juste envoyer l'instant de votre StaggeredGridView comme ceci:
((SwipeDownToRefrsh) holder.swipeRefreshLayout) .canChildScrollUp (holder.staggeredGridView);
Voilà comment j'ai essayé de résoudre le problème
d'abord, ajoutez une instance privée:
private AbsListView.OnScrollListener mOnScrollListener;
annonce d méthode setOnClickListener public:
public void setOnScrollListener (AbsListView.OnScrollListener l) {
mOnScrollListener = l;
}
Puis, en trackMotionScroll, ajouter des lignes pour appeler l'auditeur:
private boolean trackMotionScroll(int deltaY, boolean allowOverScroll) {
.
.
.
/* HERE we call onScroll */
if (mOnScrollListener != null) {
mOnScrollListener.onScroll(null, getFirstPosition(), getChildCount(), this.mItemCount);
}
return deltaY == 0 || movedBy != 0;
}
Vous pouvez également implémenter votre propre méthode onScrollStateChanged (AbsListView view, int scrollState)
, mais je suis trop paresseux pour le faire: P
Enfin, vous pouvez appeler gridView.setOnScrollListener(listener)
passer dans un auditeur StaggeredGridView
Hope it helps.
dans StaggeredGridView ils n'ont pas de méthode pour ce setOnScrollListener (écouteur) – Saleeh
Vous pouvez modifier la source et implémenter cette méthode dans la classe StaggeredGridView, car le plugin lui-même ne l'a vraiment pas. –
Ceci est la solution pour le problème de l'écouteur de défilement, la réponse devrait être acceptée. –
j'ai rencontré le même problème, et c'est pourquoi j'ai ajouté le support de rouleau auditeur moi-même, vous pouvez trouver le projet sur github ici: méthode https://github.com/GoMino/StaggeredGridView
Belle correction @gomino. J'ai fait face au même problème et je vais utiliser votre code pour cela. Merci! ps: mise à jour par le chemin. – axierjhtjz
non sur l'article cliquez sur "Pourquoi?" –
- 1. Est-il possible que StaggeredGridview d'Etsy fonctionne dans API 9?
- 2. Comment ajouter "charger plus" vue au bas de StaggeredGridView
- 3. Importation de la bibliothèque StaggeredGridView - Parcel.CreateIntArry() non applicable pour Parcel.CreateIntArry (int []) erreur
- 4. Android etsy bibliothèque StaggeredGridView ajouter des charges plus en bas de page et tirer pour rafraîchir l'en-tête
- 5. Comment utiliser dans Gemfile
- 6. Comment utiliser quickcheck dans
- 7. Comment utiliser: pas dans
- 8. Comment utiliser paramétrer dans Rails?
- 9. Comment utiliser SharpSVN dans ASP.NET?
- 10. Comment utiliser DataTemplates dans Prism
- 11. Comment utiliser flashpaper dans asp.net
- 12. Comment utiliser AutoPostBack dans UpdatePanel
- 13. Comment utiliser addView dans ViewGroup?
- 14. Comment utiliser keyCodeToString() dans Android
- 15. comment utiliser UILocationNotification dans iPad?
- 16. Comment utiliser XSLT dans l'iPad
- 17. Comment utiliser foreach dans C#?
- 18. comment utiliser getLastError dans pymongo?
- 19. Comment utiliser FTP dans Flex?
- 20. Comment utiliser CommaSeparatedIntegerField dans django?
- 21. Comment utiliser MSHTML dans VB.NET?
- 22. Comment utiliser SVM dans Weka?
- 23. Comment utiliser containsObject dans NSMutableArray
- 24. Comment utiliser char dans TextBox?
- 25. Comment utiliser QGraphicsView dans Qt?
- 26. Comment utiliser STL dans unix?
- 27. Comment utiliser rawQuery() dans Android
- 28. Comment utiliser ContextMenu dans Monodroid
- 29. Comment utiliser -not dans find?
- 30. Comment utiliser $ _GET dans Codeigniter
son meilleur de ne pas utiliser les réponses de lien seulement, comme les liens pourraient expirer laissant tout le monde à se demander quelle était la solution –
Je vais vérifier et modifier ma réponse. –
Chek ma réponse éditée –