2013-08-15 6 views
0

Je veux diviser le chargement des éléments dans un ListView Je sais que j'ai besoin d'implémenter un OnScrollListener mais il n'y a pas une telle classe ... Seulement IOnScrollListener qui manque de OnScrollMethod ... Quelqu'un at-il essayé? donc dans MonoDroid? Il semble assez simple android mais je ne peux pas à comprendre comment le port que le code à MonoDroid et MvxListView ...mettre en œuvre OnScrollListener pour MvxListView

Merci

Amit

+1

Pourquoi ne pas utiliser les C# Events au lieu d'une méthode de rappel Java laid? – Cheesebaron

Répondre

0

Je ne sais pas ce que vous entendez par ne pas manquer ce sont les fonctions, vous devez mettre en œuvre pour AbsListView.IOnScrollListener

public class test: AbsListView.IOnScrollListener 
{ 

    public void OnScroll (AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 
    { 
     throw new NotImplementedException(); 
    } 

    public void OnScrollStateChanged (AbsListView view, ScrollState scrollState) 
    { 
     throw new NotImplementedException(); 
    } 
    public void Dispose() 
    { 
     throw new NotImplementedException(); 
    } 
    public IntPtr Handle { 
      get { 
       return new IntPtr(); 
      } 
    } 

} 
+1

Non sûr, mais votre IOnScrollListener peut également avoir besoin d'hériter de Java.object pour que cela fonctionne. – Stuart

1

commentaire de Cheesebaron est la bonne réponse - j'avais moi-même un problème avec le IOnScrollListener (pas de tir du tout), sur ce exactement le même problème. Je suis passé à l'utilisation de l'événement ListView.ScrollStateChanged à la place. Mon code ressemble à ceci, je suis sûr que vous pouvez mettre en œuvre votre propre chemin (_caseTable est mon ListView):

  _caseTable.ScrollStateChanged += (o, e) => 
               { 
                var adapter = (CaseListAdapter)_caseTable.Adapter; 
                if (e.ScrollState != ScrollState.Idle) 
                { 
                 adapter.IsScrolling = true; 
                } 
                else 
                { 
                 adapter.IsScrolling = false; 
                 adapter.NotifyDataSetChanged(); 
                } 
               };