简体   繁体   中英

Android: animate a list of views in a for loop

I have an arraylist of custom objects. Each custom object corresponds to a modal inside a scroll view in my application. If there are 5 "timecard" objects in my array list, there will be 5 modals stacked vertically.

The ultimate behavior I would like, is if I have a vertical stack of 5 cards, I would like to animate the first card, when finished, start the second, when finished, do the third, etc.

Here is my method:

public void inflatetimeCardContainer(){
    timecardContainer.removeAllViews();
    int tclistIndex = 0;
    for(TimeCard tc : timeCardList){
        timeCardFragment = (RelativeLayout)LayoutInflater.from(this).inflate(R.layout.timecard_fragment, timecardContainer, false);
        textViewTitle = (TextView)timeCardFragment.findViewById(R.id.textViewTitle);
        textViewHours = (TextView)timeCardFragment.findViewById(R.id.textViewHours);
        textViewPay = (TextView)timeCardFragment.findViewById(R.id.textViewPay);
        textViewNotes = (TextView)timeCardFragment.findViewById(R.id.textViewNotes);
        buttonDelete = (Button)timeCardFragment.findViewById(R.id.buttonDelete);

        buttonDelete.setOnClickListener(handleButtonDelete);
        buttonDelete.setId(tclistIndex++);

        textViewTitle.setText(tc.getTitle());
        textViewHours.setText("Hours: " + String.valueOf(tc.getHours()));
        textViewPay.setText("Pay after taxes: " + String.valueOf((tc.getHours()*tc.getPayRate())*0.77));
        textViewNotes.setText(tc.getNotes());

        timeCardFragment.setAlpha(0);
        timecardContainer.addView(timeCardFragment);
        timeCardFragment.animate().alpha(1.0f);
        // SOME KIND OF PAUSE HERE UNTIL ANIMATION IS DONE
        // One the animation is done, continue in my for loop
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM