Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile-Cn-Ko-En
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fallenstardust
YGOMobile-Cn-Ko-En
Commits
0d9cd2e8
Commit
0d9cd2e8
authored
Jul 28, 2024
by
wangfugui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add some comments
parent
128eacba
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
50 additions
and
21 deletions
+50
-21
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
...ava/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
+8
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckAdapater.java
.../java/cn/garymb/ygomobile/ui/cards/deck/DeckAdapater.java
+17
-13
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckItemType.java
.../java/cn/garymb/ygomobile/ui/cards/deck/DeckItemType.java
+10
-7
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckViewHolder.java
...ava/cn/garymb/ygomobile/ui/cards/deck/DeckViewHolder.java
+15
-1
No files found.
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
View file @
0d9cd2e8
...
...
@@ -107,6 +107,10 @@ import ocgcore.data.Card;
import
ocgcore.data.LimitList
;
import
ocgcore.enums.LimitType
;
/**
* 注意,卡组编辑页面中的长按事件回调在ItemTouchHelperPlus中实现,而非在
* RecyclerViewItemListener.OnItemListener中
*/
public
class
DeckManagerFragment
extends
BaseFragemnt
implements
RecyclerViewItemListener
.
OnItemListener
,
OnItemDragListener
,
YGODialogUtil
.
OnDeckMenuListener
,
CardLoader
.
CallBack
,
CardSearcher
.
CallBack
{
private
static
final
String
TAG
=
"DeckManagerFragment"
;
protected
DrawerLayout
mDrawerLayout
;
...
...
@@ -298,6 +302,10 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
}
/**
* 在此处处理卡组中卡片的长按删除
* @param pos
*/
@Override
public
void
onDragLongPress
(
int
pos
)
{
if
(
pos
<
0
)
return
;
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckAdapater.java
View file @
0d9cd2e8
...
...
@@ -32,6 +32,9 @@ import ocgcore.data.LimitList;
import
ocgcore.enums.CardType
;
import
ocgcore.enums.LimitType
;
/**
* 在对应的recyclerview中添加了很多透明的item来“占位”,占位后便于根据“拖动卡片的位置”计算添加的卡片类型(是主卡组、额外卡组还是副卡组)
*/
public
class
DeckAdapater
extends
RecyclerView
.
Adapter
<
DeckViewHolder
>
implements
CardListProvider
{
private
final
List
<
DeckItem
>
mItems
=
new
ArrayList
<>();
private
final
SparseArray
<
Integer
>
mCount
=
new
SparseArray
<>();
...
...
@@ -107,7 +110,7 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
int
id
=
DeckItem
.
MainStart
+
getMainCount
();
removeItem
(
DeckItem
.
MainEnd
);
addItem
(
id
,
new
DeckItem
(
cardInfo
,
type
));
notifyItemChanged
(
DeckItem
.
MainEnd
);
//notifyItemChanged(DeckItem.MainEnd);//todo 这行好像没啥用啊??
notifyItemChanged
(
id
);
notifyItemChanged
(
DeckItem
.
MainLabel
);
return
true
;
...
...
@@ -452,12 +455,6 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
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
)
{
return
context
.
getString
(
id
,
args
);
}
...
...
@@ -543,13 +540,20 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
// 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
public
void
onBindViewHolder
(
DeckViewHolder
holder
,
int
position
)
{
//Populating data into the item through holder
DeckItem
item
=
mItems
.
get
(
position
);
holder
.
setItemType
(
item
.
getType
());
if
(
item
.
getType
()
==
DeckItemType
.
MainLabel
||
item
.
getType
()
==
DeckItemType
.
SideLabel
||
item
.
getType
()
==
DeckItemType
.
ExtraLabel
)
{
//分隔栏
||
item
.
getType
()
==
DeckItemType
.
ExtraLabel
)
{
//处理分隔栏的item view
if
(
item
.
getType
()
==
DeckItemType
.
MainLabel
)
{
holder
.
setText
(
getMainString
());
}
else
if
(
item
.
getType
()
==
DeckItemType
.
SideLabel
)
{
...
...
@@ -557,7 +561,8 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
}
else
if
(
item
.
getType
()
==
DeckItemType
.
ExtraLabel
)
{
holder
.
setText
(
getExtraString
());
}
}
else
{
}
else
{
//处理展示卡图的item view
/* 动态计算控件的高度,优先根据卡图的实际大小计算高度,如果结果<=0,则根据recyclerView的宽度计算控件高度 */
if
(
mHeight
<=
0
)
{
if
(
holder
.
cardImage
.
getMeasuredWidth
()
>
0
)
{
mWidth
=
holder
.
cardImage
.
getMeasuredWidth
();
...
...
@@ -574,11 +579,10 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
//显示卡片
holder
.
showImage
();
holder
.
setSize
(
mHeight
);
if
(
item
.
getType
()
==
DeckItemType
.
Space
)
{
//占位但是不显示卡图
if
(
item
.
getType
()
==
DeckItemType
.
Space
)
{
//占位,不显示卡图
holder
.
setCardType
(
0
);
holder
.
showEmpty
();
}
else
{
}
else
{
//非占位,显示卡图
Card
cardInfo
=
item
.
getCardInfo
();
// holder.cardImage.setOnClickListener(new View.OnClickListener() {
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckItemType.java
View file @
0d9cd2e8
package
cn.garymb.ygomobile.ui.cards.deck
;
/**
* DeckItemType的不同值对应着,recyclerView中的item的不同布局形式
*/
public
enum
DeckItemType
{
MainLabel
,
MainCard
,
ExtraLabel
,
ExtraCard
,
SideLabel
,
SideCard
,
Space
,
MainLabel
,
//对应“主卡组:60怪兽:21...“这种分隔标签
MainCard
,
//对应主卡组中的卡图控件
ExtraLabel
,
//额外卡组
ExtraCard
,
//对应额外卡组中的卡图控件
SideLabel
,
//副卡组
SideCard
,
//对应副卡组中的卡图控件
Space
,
//对应占位的卡图控件
Pack
}
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckViewHolder.java
View file @
0d9cd2e8
...
...
@@ -12,7 +12,11 @@ import androidx.recyclerview.widget.RecyclerView;
import
cn.garymb.ygomobile.lite.R
;
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
{
// 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
headView
;
private
final
View
textlayout
;
...
...
@@ -22,8 +26,11 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
private
long
mCardType
;
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
)
{
// Stores the view in a public final member variable that can be used
// to access the context from any ViewHolder instance.
super
(
view
);
this
.
view
=
view
;
view
.
setTag
(
view
.
getId
(),
this
);
...
...
@@ -88,6 +95,10 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
// imageLoader.$(outFile, cardImage, outFile.getName().endsWith(Constants.BPG), 0, null);
}
/**
* 只展示分隔标签(例如“主卡组:60怪兽:21“),隐藏掉卡图ImageView
* @param text
*/
public
void
setText
(
String
text
)
{
labelText
.
setText
(
text
);
textlayout
.
setVisibility
(
View
.
VISIBLE
);
...
...
@@ -95,6 +106,9 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
rightImage
.
setVisibility
(
View
.
GONE
);
}
/**
* 展示卡图,隐藏分隔标签
*/
public
void
showImage
()
{
textlayout
.
setVisibility
(
View
.
GONE
);
cardImage
.
setVisibility
(
View
.
VISIBLE
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment