Как переместить элементы Recyclerview в нижнюю часть после окончания таймера обратного отсчета?

#android-recyclerview #countdowntimer

Вопрос:

Левый-мой recyclerview , я хочу, чтобы recyclerview был похож на правый

В моем обзоре вторсырья их таймер обратного отсчета в каждом элементе..и когда закончится таймер обратного отсчета первого элемента, я хочу, чтобы элемент в томе шел прямо вниз. Циклер должен продолжаться до тех пор, пока их элементы не появятся в повторном просмотре. Я знаю, как добавить обратный отсчет. Пожалуйста, дайте мне знать, как выполнить логику позиционирования, правильное изображение-это то, что требуется.

Это мой класс адаптера…пожалуйста, дайте мне знать, если здесь мне нужно вставить код..

 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, пожалуйста, дайте мне знать, если вы можете помочь в дальнейшем