#android-recyclerview #countdowntimer
Вопрос:
В моем обзоре вторсырья их таймер обратного отсчета в каждом элементе..и когда закончится таймер обратного отсчета первого элемента, я хочу, чтобы элемент в томе шел прямо вниз. Циклер должен продолжаться до тех пор, пока их элементы не появятся в повторном просмотре. Я знаю, как добавить обратный отсчет. Пожалуйста, дайте мне знать, как выполнить логику позиционирования, правильное изображение-это то, что требуется.
Это мой класс адаптера…пожалуйста, дайте мне знать, если здесь мне нужно вставить код..
public class MyAdapter extends RecyclerView.Adapter<myadapter.holder> {
// creating variables for our ArrayList and context
private ArrayList<userdet> UserArrayList;
private HomeFragment context;
String timey ;
// creating constructor for our adapter class
public MyAdapter(ArrayList<userdet> UserArrayList, HomeFragment context) {
this.UserArrayList = UserArrayList;
this.context = context;
}
@NonNull
@Override
public MyAdapter.Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new Holder(LayoutInflater.from(context.getActivity()).inflate(R.layout.onerowforrecview, parent, false));
}
@Override
public void onBindViewHolder(@NonNull Holder holder, int position) {
// setting data to our text views from our modal class.
UserDet userDet = UserArrayList.get(position);
holder.ques_name_h.setText(userDet.getCategoryName());
}
long timer = userDet.getCategoryTime().toDate().getTime();
Date today = new Date();
final long currentTime = System.currentTimeMillis();
long expiryTime = timer - currentTime;
new CountDownTimer(expiryTime, 1000) {
public void onTick(long millisUntilFinished) {
long seconds = millisUntilFinished / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;
timey = days "d, " hours % 24 "h left";
holder.ques_time_h.setText(timey);
}
public void onFinish() {
holder.ques_amount_h.setButtonColor(R.color.teal_200);
holder.itemView.setEnabled(false); //makig disclick
holder.ques_time_h.setText("Time up!");
}
}.start();
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(context.getActivity(),TournamentDetails.class);
context.startActivity(intent);
}
});
}
Комментарии:
1.
notifyItemRangeChanged
вы должны позвонить после перемещения товара . вы получите обратный вызов таймера, когда вы должны переместить элемент в положение lat и позвонитьnotifyItemRangeChanged(position,size-1)
.2. Спасибо за ваш комментарий . Но я не знаю, как переместить предмет. Это вопрос только «как переместить элемент вниз» . Не могли бы вы подробнее рассказать, пожалуйста … или показать, как этого добиться. Я не знаю этого заранее.
3. @ADM я добавил свой код для класса адаптера… дайте мне знать, где я должен использовать notifyItemRangeChanged
4. @ADM, пожалуйста, дайте мне знать, если вы можете помочь в дальнейшем