Обязательно укажите lineterinator='\n'
при создании записи; в противном случае лишняя пустая строка может быть записана в файл после каждой строки данных, когда источники данных из другого файла csv ...
Вот мое решение:
with open('csvfile', 'a') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ',quotechar='|', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
for i in range(0, len(data)):
spamwriter.writerow(data[i])
Вам нужен этот эффект:
в вашем OnBindViewHolder
адаптере:
private int lastAnimatedPosition = -1;
public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position)
{
RunEnterAnimation(viewHolder.ItemView, position);
}
метод RunEnterAnimation
:
private void RunEnterAnimation(View view, int position)
{
if (position > lastAnimatedPosition)
{
lastAnimatedPosition = position;
ObjectAnimator animator1 = ObjectAnimator.OfFloat(view, "TranslationY", -500, 0);
animator1.SetDuration(2000);
ObjectAnimator animator2 = ObjectAnimator.OfFloat(view, "alpha", 0, 1);
animator2.SetDuration(2000);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.PlayTogether(animator1, animator2);
animatorSet.StartDelay=5;
animatorSet.Start();
}
}
ps : если вы не хотите использовать xml, вы можете использовать метод, описанный выше, и вы также можете использовать LayoutAnimation
с Resources/anim/xx.xml
, а также можете реализовать ItemAnimator