Ich habe eine spezielle Animation, die die Karten für meine RecyclerView
bevölkert. Die Animation funktioniert gut (zumindest zum Aufblasen). Ich möchte nicht, dass diese Animation nach der ersten Inflation verwendet wird. Mit anderen Worten, ich möchte keine Animation zum Scrollen (oder wirklich irgendeine Aktion durch den Benutzer nach dem anfänglichen Aufblasen von genügend Karten, um den Bildschirm des Benutzers zu füllen). Ich kann nicht herausfinden, wie ich die Positionsnummer erfassen soll - oder - nach dem Auffüllen die Animation ausschalten - oder eine andere Möglichkeit, dies zu tun. Meine Animation wird im Adapter aufgerufen. Hier ist der Adaptercode, den ich verwende, um die Animation einzustellen.Stop Animation nach Recyclerview bläst Bildschirm
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);
}
Ich glaube, dieser Link sagt mir, wie man die Animation beendet. Ich kann das, aber ich muss wissen, wie man Animation * nach der Inflation beendet *. Das ist der schwierige Teil für mich. – seekingStillness
Es wird nur auf die Inflation und nicht danach animieren. –
Danke, ich werde es versuchen! – seekingStillness