2012-01-17 20 views
10

Desidero animare gli elementi della visualizzazione elenco. Al momento sto applicando l'animazione di transizione sugli elementi dell'elenco ogni volta che vengono aggiunti nuovi elementi. Ma questa non è l'animazione che voglio raggiungere. Voglio che quando un nuovo elemento viene aggiunto nella visualizzazione elenco in quel momento l'intera vista Elenco sposta un posto verso il basso per far posto all'elemento appena aggiunto.Aggiunta dell'animazione a una visualizzazione elenco in Android

Attualmente il codice che sto usando è:

set = new AnimationSet(true); 

    animation = new AlphaAnimation(0.0f, 1.0f); 
    animation.setDuration(50); 
    set.addAnimation(animation); 

    animation = new TranslateAnimation(
     Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f, 
     Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f 
    ); 
    animation.setDuration(150); 
    set.addAnimation(animation); 

    LayoutAnimationController controller = new LayoutAnimationController(set, 1.0f); 
    l.setLayoutAnimation(controller); 
    l.setAdapter(listAdaptor); 

E poi, mentre l'aggiunta articoli attraverso pulsante onclick

l.startLayoutAnimation(); 

Altri suggerimenti per raggiungere tale animazione.

risposta

14

Ho ottenuto la soluzione a questo. Animare ogni elemento aggiunto nel metodo getView del mio adattatore personalizzato.

public View getView(int position, View convertView, ViewGroup parent) { 

     View v = convertView; 

     if (v == null) { 
      LayoutInflater vi = (LayoutInflater) getActivity() 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.simple_list_item_1, null); 
     } 

     ListData o = list.get(position); 
     TextView tt = (TextView) v.findViewById(R.id.toptext); 

     tt.setText(o.content); 

     Log.d("ListTest", "Position : "+position); 
     if(flag == false) { 
     Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_top_to_bottom); 
     v.startAnimation(animation);} 
     return v; 
    } 

E così ottenuto l'animazione come avevo dichiarato.

+0

errore di ricezione nell'animazione 'R.anim.slide_top_to_bottom' non può essere risolto o non è un campo – Nishant

+0

Hai aggiunto il xml nella cartella anim? – ASH

+0

No, puoi fornire il codice per quel file? – Nishant

Problemi correlati