Commit 0d9cd2e8 authored by wangfugui's avatar wangfugui

Add some comments

parent 128eacba
...@@ -107,6 +107,10 @@ import ocgcore.data.Card; ...@@ -107,6 +107,10 @@ import ocgcore.data.Card;
import ocgcore.data.LimitList; import ocgcore.data.LimitList;
import ocgcore.enums.LimitType; import ocgcore.enums.LimitType;
/**
* 注意,卡组编辑页面中的长按事件回调在ItemTouchHelperPlus中实现,而非在
* RecyclerViewItemListener.OnItemListener中
*/
public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewItemListener.OnItemListener, OnItemDragListener, YGODialogUtil.OnDeckMenuListener, CardLoader.CallBack, CardSearcher.CallBack { public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewItemListener.OnItemListener, OnItemDragListener, YGODialogUtil.OnDeckMenuListener, CardLoader.CallBack, CardSearcher.CallBack {
private static final String TAG = "DeckManagerFragment"; private static final String TAG = "DeckManagerFragment";
protected DrawerLayout mDrawerLayout; protected DrawerLayout mDrawerLayout;
...@@ -298,6 +302,10 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -298,6 +302,10 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
} }
/**
* 在此处处理卡组中卡片的长按删除
* @param pos
*/
@Override @Override
public void onDragLongPress(int pos) { public void onDragLongPress(int pos) {
if (pos < 0) return; if (pos < 0) return;
......
...@@ -32,6 +32,9 @@ import ocgcore.data.LimitList; ...@@ -32,6 +32,9 @@ import ocgcore.data.LimitList;
import ocgcore.enums.CardType; import ocgcore.enums.CardType;
import ocgcore.enums.LimitType; import ocgcore.enums.LimitType;
/**
* 在对应的recyclerview中添加了很多透明的item来“占位”,占位后便于根据“拖动卡片的位置”计算添加的卡片类型(是主卡组、额外卡组还是副卡组)
*/
public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implements CardListProvider { public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implements CardListProvider {
private final List<DeckItem> mItems = new ArrayList<>(); private final List<DeckItem> mItems = new ArrayList<>();
private final SparseArray<Integer> mCount = new SparseArray<>(); private final SparseArray<Integer> mCount = new SparseArray<>();
...@@ -107,7 +110,7 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement ...@@ -107,7 +110,7 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
int id = DeckItem.MainStart + getMainCount(); int id = DeckItem.MainStart + getMainCount();
removeItem(DeckItem.MainEnd); removeItem(DeckItem.MainEnd);
addItem(id, new DeckItem(cardInfo, type)); addItem(id, new DeckItem(cardInfo, type));
notifyItemChanged(DeckItem.MainEnd); //notifyItemChanged(DeckItem.MainEnd);//todo 这行好像没啥用啊??
notifyItemChanged(id); notifyItemChanged(id);
notifyItemChanged(DeckItem.MainLabel); notifyItemChanged(DeckItem.MainLabel);
return true; return true;
...@@ -452,12 +455,6 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement ...@@ -452,12 +455,6 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
return !TextUtils.equals(mDeckMd5, md5); return !TextUtils.equals(mDeckMd5, md5);
} }
@Override
public DeckViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = mLayoutInflater.inflate(R.layout.item_deck_card, parent, false);
return new DeckViewHolder(view);
}
private String getString(int id, Object... args) { private String getString(int id, Object... args) {
return context.getString(id, args); return context.getString(id, args);
} }
...@@ -543,13 +540,20 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement ...@@ -543,13 +540,20 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
// notifyItemChanged(DeckItem.HeadView); // notifyItemChanged(DeckItem.HeadView);
} }
@Override
public DeckViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// Inflating a layout from XML and returning the holder
View view = mLayoutInflater.inflate(R.layout.item_deck_card, parent, false);
return new DeckViewHolder(view);
}
@Override @Override
public void onBindViewHolder(DeckViewHolder holder, int position) { public void onBindViewHolder(DeckViewHolder holder, int position) {
//Populating data into the item through holder
DeckItem item = mItems.get(position); DeckItem item = mItems.get(position);
holder.setItemType(item.getType()); holder.setItemType(item.getType());
if (item.getType() == DeckItemType.MainLabel || item.getType() == DeckItemType.SideLabel if (item.getType() == DeckItemType.MainLabel || item.getType() == DeckItemType.SideLabel
|| item.getType() == DeckItemType.ExtraLabel) { || item.getType() == DeckItemType.ExtraLabel) {//处理分隔栏的item view
//分隔栏
if (item.getType() == DeckItemType.MainLabel) { if (item.getType() == DeckItemType.MainLabel) {
holder.setText(getMainString()); holder.setText(getMainString());
} else if (item.getType() == DeckItemType.SideLabel) { } else if (item.getType() == DeckItemType.SideLabel) {
...@@ -557,7 +561,8 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement ...@@ -557,7 +561,8 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
} else if (item.getType() == DeckItemType.ExtraLabel) { } else if (item.getType() == DeckItemType.ExtraLabel) {
holder.setText(getExtraString()); holder.setText(getExtraString());
} }
} else { } else {//处理展示卡图的item view
/* 动态计算控件的高度,优先根据卡图的实际大小计算高度,如果结果<=0,则根据recyclerView的宽度计算控件高度 */
if (mHeight <= 0) { if (mHeight <= 0) {
if (holder.cardImage.getMeasuredWidth() > 0) { if (holder.cardImage.getMeasuredWidth() > 0) {
mWidth = holder.cardImage.getMeasuredWidth(); mWidth = holder.cardImage.getMeasuredWidth();
...@@ -574,11 +579,10 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement ...@@ -574,11 +579,10 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
//显示卡片 //显示卡片
holder.showImage(); holder.showImage();
holder.setSize(mHeight); holder.setSize(mHeight);
if (item.getType() == DeckItemType.Space) { if (item.getType() == DeckItemType.Space) {//占位,不显示卡图
//占位但是不显示卡图
holder.setCardType(0); holder.setCardType(0);
holder.showEmpty(); holder.showEmpty();
} else { } else {//非占位,显示卡图
Card cardInfo = item.getCardInfo(); Card cardInfo = item.getCardInfo();
// holder.cardImage.setOnClickListener(new View.OnClickListener() { // holder.cardImage.setOnClickListener(new View.OnClickListener() {
......
package cn.garymb.ygomobile.ui.cards.deck; package cn.garymb.ygomobile.ui.cards.deck;
/**
* DeckItemType的不同值对应着,recyclerView中的item的不同布局形式
*/
public enum DeckItemType { public enum DeckItemType {
MainLabel, MainLabel,//对应“主卡组:60怪兽:21...“这种分隔标签
MainCard, MainCard,//对应主卡组中的卡图控件
ExtraLabel, ExtraLabel,//额外卡组
ExtraCard, ExtraCard,//对应额外卡组中的卡图控件
SideLabel, SideLabel,//副卡组
SideCard, SideCard,//对应副卡组中的卡图控件
Space, Space,//对应占位的卡图控件
Pack Pack
} }
...@@ -12,7 +12,11 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -12,7 +12,11 @@ import androidx.recyclerview.widget.RecyclerView;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.ImageLoader; import cn.garymb.ygomobile.loader.ImageLoader;
// Provide a direct reference to each of the views within a data item
// Used to cache the views within the item layout for fast access
class DeckViewHolder extends RecyclerView.ViewHolder { class DeckViewHolder extends RecyclerView.ViewHolder {
// Your holder should contain a member variable
// for any view that will be set as you render a row
private final View view; private final View view;
private final View headView; private final View headView;
private final View textlayout; private final View textlayout;
...@@ -22,8 +26,11 @@ class DeckViewHolder extends RecyclerView.ViewHolder { ...@@ -22,8 +26,11 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
private long mCardType; private long mCardType;
private DeckItemType mItemType; private DeckItemType mItemType;
// Create a constructor that accepts the entire item row
// and does the view lookups to find each subview
public DeckViewHolder(View view) { public DeckViewHolder(View view) {
// Stores the view in a public final member variable that can be used
// to access the context from any ViewHolder instance.
super(view); super(view);
this.view = view; this.view = view;
view.setTag(view.getId(), this); view.setTag(view.getId(), this);
...@@ -88,6 +95,10 @@ class DeckViewHolder extends RecyclerView.ViewHolder { ...@@ -88,6 +95,10 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
// imageLoader.$(outFile, cardImage, outFile.getName().endsWith(Constants.BPG), 0, null); // imageLoader.$(outFile, cardImage, outFile.getName().endsWith(Constants.BPG), 0, null);
} }
/**
* 只展示分隔标签(例如“主卡组:60怪兽:21“),隐藏掉卡图ImageView
* @param text
*/
public void setText(String text) { public void setText(String text) {
labelText.setText(text); labelText.setText(text);
textlayout.setVisibility(View.VISIBLE); textlayout.setVisibility(View.VISIBLE);
...@@ -95,6 +106,9 @@ class DeckViewHolder extends RecyclerView.ViewHolder { ...@@ -95,6 +106,9 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
rightImage.setVisibility(View.GONE); rightImage.setVisibility(View.GONE);
} }
/**
* 展示卡图,隐藏分隔标签
*/
public void showImage() { public void showImage() {
textlayout.setVisibility(View.GONE); textlayout.setVisibility(View.GONE);
cardImage.setVisibility(View.VISIBLE); cardImage.setVisibility(View.VISIBLE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment