我有一個特殊的動畫,用於填充我的RecyclerView
的卡片。動畫效果很好(至少對於充氣)。我不想在最初的通貨膨脹之後使用這個動畫。換句話說,我不希望有任何滾動的動畫(或者在用戶填充足夠的卡片充滿用戶的屏幕之後用戶的任何動作)。我無法弄清楚如何獲取位置編號 - 或者 - 填充後關閉動畫 - 或者 - 以任何方式執行此操作。我的動畫在適配器中調用。這是我用來設置動畫的適配器代碼。回收站查看屏幕後停止動畫
public class TagAdapter extends RecyclerView.Adapter<TagAdapter.ViewHolder>{
private ArrayList<TagDataModel> dataSet;
private Context context;
public TagAdapter (ArrayList<TagDataModel> ds, Context ctx){
this.dataSet =ds;
this.context =ctx;
}
class ViewHolder extends RecyclerView.ViewHolder {
TextView tv_tag;
ArrayList<TagDataModel> dataSet = new ArrayList<>();
Context context;
CardView card;
ViewHolder(View itemView, Context ctx, ArrayList<TagDataModel> ds) {
super(itemView);
this.dataSet = ds;
this.context =ctx;
this.tv_tag = (TextView) itemView.findViewById(R.id.tv_cardTag);
this.card = (CardView) itemView.findViewById(R.id.card_view_tag);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_tag, parent, false);
ViewHolder viewHolder = new ViewHolder(view, context, dataSet);
return viewHolder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, @SuppressLint("RecyclerView") final int position) {
final int activePosition = context.getSharedPreferences("userPrefs", Context.MODE_PRIVATE).getInt("np_tag", 0);
TextView tv_tag = holder.tv_tag;
CardView card = holder.card;
tv_tag.setText(dataSet.get(position).getTag());
});
animate(holder.itemView, position); //animate only first page UPDATE
}
@Override
public int getItemCount() {
return dataSet.size();
}
private void animate(View view, final int pos) {
view.animate().cancel();
view.setTranslationY(100);
view.setAlpha(0);
view.animate().alpha(1.0f).translationY(0).setDuration(300).setStartDelay(pos *100);
}
我相信這個鏈接告訴我如何結束動畫。我可以這樣做,但我需要知道如何在通貨膨脹後結束動畫*。這對我來說是棘手的部分。 – seekingStillness
它只會在通貨膨脹的時候動畫,而不是在那之後動畫。 –
謝謝,我會試試! – seekingStillness