2013-08-13 9 views
6

Ho una lista che inizia con 50 voci e voglio aggiungerne altre mentre l'utente scorre l'elenco, ma prima che raggiunga la fine della lista. Ho utilizzato la proprietà atEnd per sapere quando sono alla fine dell'elenco e aggiungere altri elementi a quel punto, ma preferirei iniziare ad aggiungere nuovi elementi quando sono al 50% - 75% del modo attraverso l'elenco, in modo che l'utente abbia meno probabilità di essere lasciato in attesa di ulteriori datiCome posso aggiungere più elementi a un ListView prima di raggiungere la fine dell'elenco su un'app BB10?

risposta

7

È possibile utilizzare il segnale onFirstVisibleItemChanged per scoprire fino a che punto si è nella lista. Utilizza il primovisibleitem e la dimensione corrente del modello di dati per ottenere la tua posizione corrente nell'elenco. Se quella posizione rientra nei limiti impostati (50% e 75% nel mio codice di esempio), eseguire il codice per aggiungere altri elementi al modello dati.

Non impostare un numero esatto, in quanto il segnale potrebbe non catturare esattamente il 50% del modo attraverso l'elenco, e si dovrebbe anche mantenere un controllo per quando si preme la fine della lista come failsafe in caso l'utente supera l'intervallo impostato.

ListView { 
dataModel: listDataModel 
objectName: "listView" 
attachedObjects: [ 

    ListScrollStateHandler { 
     property int position 
     id: scrollStateHandler 
     onScrollingChanged: { 

      if (atEnd) { 
       //code to run if you hit the end of the list 
      } 
     } 
     onFirstVisibleItemChanged: { 
      if (position < firstVisibleItem) { 
       console.log("Scrolling Down") 
       var size = listDataModel.size(); 
       var percent = firstVisibleItem/size * 100; 
       console.log("Percent: " + percent + "%"); 
       if (50 < percent < 75) { 
        //do stuff 
       } 
      } else if (position > firstVisibleItem) { 
       console.log("Scrolling Up"); 

      } 
      position = parseInt(firstVisibleItem); 
     } 
    } 
]} 
+0

Ottima risposta, grazie! Non avrei mai pensato a questo da solo – krilovich

Problemi correlati