季心愿单的设置与展示

This commit is contained in:
18401019693
2023-03-30 16:46:02 +08:00
parent 87ba382e81
commit 2db89365bb
3 changed files with 207 additions and 7 deletions

View File

@@ -111,6 +111,20 @@ public class LiveNewWishAdapter extends RecyclerView.Adapter {
});
} else if (holder instanceof SeasonalWishItemViewHolder) {
SeasonalWishItemViewHolder seasonalWishItemViewHolder = (SeasonalWishItemViewHolder) holder;
seasonalWishItemViewHolder.steSeasonalWish(wishList.get(position), position, new SeasonalWishItemViewHolder.SeasonalWishItemListener() {
@Override
public void onDelete(int index) {
wishList.remove(index);
notifyDataSetChanged();
}
@Override
public void onUpdate(WishModel model, int index) {
wishList.remove(index);
wishList.add(index, model);
notifyItemChanged(index);
}
});
}
}

View File

@@ -1,12 +1,103 @@
package com.yunbao.common.views;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class SeasonalWishItemViewHolder extends RecyclerView.ViewHolder {
import com.yunbao.common.R;
import com.yunbao.common.bean.WishModel;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.WordsTypeUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class SeasonalWishItemViewHolder extends RecyclerView.ViewHolder {
private TextView wishTab, wishlistName, wishlistProgress, wishlistNum, wishlistNum2, subtraction, addition;
private ImageView wishIcon;
private FrameLayout wishIconBg, tabBg, iconCancel;
private ProgressBar progressBar;
public SeasonalWishItemViewHolder(@NonNull View itemView) {
super(itemView);
wishTab = itemView.findViewById(R.id.wish_tab);
wishIcon = itemView.findViewById(R.id.wish_icon);
tabBg = itemView.findViewById(R.id.tab_bg);
wishIconBg = itemView.findViewById(R.id.wish_icon_bg);
iconCancel = itemView.findViewById(R.id.icon_cancel);
wishlistName = itemView.findViewById(R.id.wishlist_name);
progressBar = itemView.findViewById(R.id.progressBar);
wishlistProgress = itemView.findViewById(R.id.wishlist_progress);
wishlistNum = itemView.findViewById(R.id.wishlist_num);
wishlistNum2 = itemView.findViewById(R.id.wishlist_num2);
subtraction = itemView.findViewById(R.id.subtraction);
addition = itemView.findViewById(R.id.addition);
}
public void steSeasonalWish(WishModel model, int index, SeasonalWishItemListener listener) {
if (model != null) {
itemView.findViewById(R.id.hind_layout).setVisibility(View.VISIBLE);
itemView.findViewById(R.id.wish_icon_bg).setVisibility(View.VISIBLE);
itemView.findViewById(R.id.progress_bar).setVisibility(View.VISIBLE);
iconCancel.setVisibility(View.VISIBLE);
wishTab.setVisibility(View.VISIBLE);
wishlistName.setVisibility(View.VISIBLE);
wishTab.setText(String.format(itemView.getContext().getString(R.string.wish_number), WordsTypeUtil.numberConvertToUppercase(index + 1)));
ImgLoader.display(itemView.getContext(), model.getWishlistIcon(), wishIcon);
tabBg.setBackgroundResource(R.mipmap.bg_seasonal_wish);
wishIconBg.setBackgroundResource(R.mipmap.background_wish_item);
wishlistName.setText(model.getWishlistName());
progressBar.setMax(model.wishProgress());
progressBar.setProgress(model.wishCurrent());//当前进度
wishlistProgress.setText(model.getWishlistProgress());
wishlistNum.setText(String.format("/%s", model.getWishlistNum()));
wishlistNum2.setText(String.format("x%s", model.getWishlistNum()));
ViewClicksAntiShake.clicksAntiShake(iconCancel, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
if (listener != null) {
listener.onDelete(index);
}
}
});
ViewClicksAntiShake.clicksAntiShake(addition, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
int number = model.wishProgress();
model.setWishlistNum(String.valueOf(number + 1));
if (listener != null) {
listener.onUpdate(model, index);
}
}
});
ViewClicksAntiShake.clicksAntiShake(subtraction, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
int number = model.wishProgress();
model.setWishlistNum(String.valueOf(number - 1));
if (listener != null) {
listener.onUpdate(model, index);
}
}
});
} else {
itemView.findViewById(R.id.hind_layout).setVisibility(View.GONE);
itemView.findViewById(R.id.progress_bar).setVisibility(View.GONE);
tabBg.setBackground(null);
wishTab.setVisibility(View.GONE);
wishlistName.setVisibility(View.GONE);
iconCancel.setVisibility(View.GONE);
itemView.findViewById(R.id.wish_icon_bg).setVisibility(View.GONE);
}
}
public interface SeasonalWishItemListener {
void onDelete(int index);
void onUpdate(WishModel model, int index);
}
}