2016-04-25 10 views
7

Ho implementato ItemDecoration nel mio RecyclerView insieme a un'animazione che viene riprodotta ogni volta che viene caricato il camper. Tuttavia, ho notato che la decorazione appare già ai limiti prima del completamento dell'animazione, e voglio che la decorazione si sposti con l'animazione contemporaneamente. Come lo farei?Rendere ElementoDecorazione spostare con Animazione

Finora, sono stato entrando l'animazione in questo modo:

@Override 
    public void onBindViewHolder(final RecyclerVH recyclerVH, final int position) { 
    currentNote = data.get(position); 
    final String currentTitle = currentNote.getTitle(); 
    final String currentContent = currentNote.getContent(); 
    final int currentPosition = currentNote.getPosition(); 
    String currentAlarmDate = currentNote.getAlarm(); 

    Log.d("RecyclerView", "onBindVH called: " + currentTitle); 
    Log.d("RecyclerView", "Position at: " + currentPosition + " and Adapter Position at: " + recyclerVH.getAdapterPosition()); 

    // final Info currentObject = data.get(position); 
    // Current Info object retrieved for current RecyclerView item - USED FOR DELETE 
    recyclerVH.listTitle.setText(currentTitle); 
    recyclerVH.listContent.setText(currentContent); 
    Log.d("RecyclerAdapter", "currentAlarmDate is: '" + currentAlarmDate + "'"); 
    if (currentAlarmDate != null && !currentAlarmDate.equals(" ")) { 
     Log.d("RecyclerAdapter", "Current Alarm set for: " + currentAlarmDate); 
     recyclerVH.alarm.setText(currentAlarmDate); 
    } else 
     recyclerVH.alarm.setText(R.string.no_alarm); 

    /*recyclerVH.listTitle.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Open new Activity containing note content 
      Toast.makeText(this, "Opening: " + currentObject.title, Toast.LENGTH_LONG).show(); 
     } 
    });*/ 
    runEnterAnimation(recyclerVH.itemView, position); 
} 


private void runEnterAnimation(View itemView, int position) { 
    // Starts Animation 

    Animation animation = AnimationUtils.loadAnimation(context, 
      position >= lastAnimatedPosition ? R.anim.up_from_bottom : R.anim.down_from_top); 
    // If true, up_from_button is loaded 
    itemView.startAnimation(animation); 
    lastAnimatedPosition = position; 
    Log.d("RecyclerAdapter", "lastAnimatedPosition is now: " + lastAnimatedPosition); 
} 
+0

Hai trovato una soluzione per questo? – ernazm

+0

@ernazm Sfortunatamente, no. –

+1

Stai usando l'animatore di elementi RV? In questo caso, guarda [questo post] (http://stackoverflow.com/questions/29061450/how-to-disable-recyclerview-item-decoration-drawing-for-the-duration-of-item-ani) –

risposta

-1

Potete leggere l'documentation

Oppure, se necessità di decorazione animate è possibile provare questo:

https://github.com/slidenerd/materialtest

Grazie, se non riesci a ottenere la soluzione che ti chiedo, farò del mio meglio per darti una soluzione migliore. :)

+0

Grazie per il collegamento, ma la documentazione non indica esattamente come è possibile eseguire una decorazione "ritardata". Qualcos'altro nella manica? –

+0

Cosa intendi per decorazione ritardata? Intendi un caricamento lento? O qualcos'altro? –

+0

Intendo decorazione ritardata come nel caso in cui la decorazione appare dopo l'animazione o con l'animazione come la mia domanda originale. –

Problemi correlati