2013-01-25 17 views

risposta

4

per ottenere la prima voce del listview avere un layout diverso il seguente codice può essere utilizzato. Ma il listview non si muove quando gli elementi nella lista sono inferiori al no degli elementi visibili.

list.setOnScrollListener(new OnScrollListener() { 

     @Override 
     public void onScrollStateChanged(AbsListView view, int scrollState) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, 
       int visibleItemCount, int totalItemCount) { 
      // TODO Auto-generated method stub 

      if(firstItem != firstVisibleItem) 
      { 
       firstItem = firstVisibleItem; 
       adapter.notifyDataSetChanged(); 
      } 
     } 
    }); 

e dentro il controllo classe adattatore se il postion è stesso firstItem se uguale quindi mostrano la disposizione detals.

0

In getView(), è possibile gonfiare un layout diverso per una posizione diversa. fare qualcosa di simile

if(position==0){ 
      inflate(first_layout); 
    else{ 
      inflate(other_layout); 
+2

non è quello che gli serve. Controlla come funziona. Non farà in modo che il primo elemento visibile abbia un layout diverso, ma creerà un layout diff solo per il primo elemento. La domanda è difficile e interessante. –

+0

Questo cambierà solo il layout del primo elemento nell'elenco e non il primo elemento visibile. Voglio che ogni cella cambi il suo layout quando raggiunge la prima posizione visibile. –

+0

ma questa risposta è ciò di cui ho bisogno :) ma non posso votare perché diverso argomento –

0

Si può provare un po 'di metodo come

getFirstVisiblePosition

O this potrebbe rispondere il problema

+0

questo cambierà solo il primissimo oggetto se non sbaglio e non cambierò il primo oggetto in modo dinamico. –

+1

Ora capisco la sua domanda. mi scuso il – Krit

2

Prova questo

int visibleposition = ListView .getFirstV isiblePosition();

ora questa particolare posizione modificare lo sfondo della voce di elenco come questo

+0

hii. ho provato questo metodo e funziona. ma il problema è che se tutti gli elementi in 'listview' sono visibili senza scorrere, per esempio 'totalItemCount' è minore o uguale a 'visibleItemCount' il 'listview' non si sposta. quindi sono visibili solo i dettagli del primo oggetto. –

+0

non si muove significa ?? – Swati

+0

anche gli ultimi elemets nell'elenco non possono mai venire nel segmento dei dettagli in quanto non vengono mai nella prima posizione. –

Problemi correlati