【发布时间】:2021-10-21 12:19:53
【问题描述】:
我正在制作某种促销活动应用程序。为此,我需要一个 Recyclerview,其中每个项目都有一个倒数计时器。每件商品都有倒计时,上面写着“促销开始于 XX hr: YY min”当商品倒计时到期时,该商品应该会下降到 Recyclerview 的底部。
我在 onbindviewholder 内做了一个倒数计时器,但是当计时器到期时出现错误。请有人帮我克服这个...这是需要img
每个项目的到期时间来自 Firestore 数据库。
我正在我的 onbindViewholder 中执行此操作... 字符串remTime;
@Override
public void onBindViewHolder(@NonNull Holder holder, int position) {
ItemDet item = ItemArrayList.get(position);
long timer = item.getCategoryTime().toDate().getTime();
final long currentTime = System.currentTimeMillis();
long expiryTime = timer - currentTime;
if (holder.timer != null) {
holder.timer.cancel();
}
holder.timer=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;
if(days==0){
remTime= minutes % 60 + "m:" + seconds % 60+"s";
}
if(days<1 && hours>0 && minutes>0 && seconds>0){
remTime= hours % 24 + "h:"+ minutes % 60 + "m";
}
if(days<1 && hours<1 && minutes>0 && seconds>0){
remTime= minutes % 60 + "m:"+ seconds % 60+"s";
}
if(days<1 && hours<1 && minutes<1 && seconds>0){
remTime= seconds % 60+"s";
}
if (days>0){
remTime= days+"d, " +hours % 24 + "h";
}
holder.item_time_h.setText(remTime);
}
public void onFinish() {
holder.itemView.setEnabled(false);
holder.item_time_h.setText("Time up!");
ItemArrayList.remove(holder.adapterPosition());
notifyItemRemoved(holder.adapterPosition());
notifyItemRangeChanged(holder.adapterPosition(), ItemArrayList.size());
//Here after timer finish i want to remove the item from the top and put it on bottom
}
请帮帮我,我被困了 2 周
【问题讨论】:
-
你试过用
notifyItemMoved(fromPosition, toPosition) -
@Nitish ..是的,什么都试过了...但是当 1 项被删除时,要么它给我错误..或者当第 2 项被删除时,它给我错误
-
什么样的错误?
-
在 RecyclerView 计算布局或滚动时无法调用此方法:id/recyclerView2}
-
@Nitish ava.lang.IllegalStateException: 无法在 RecyclerView 计算布局或滚动时调用此方法 androidx.recyclerview.widget.RecyclerView{826538d VFED..... ......ID 11,425-1069,1976 #7f0a0237 app:id/recyclerView2},阿达
标签: android android-recyclerview