更新控件

This commit is contained in:
HapeLee
2025-09-06 04:20:11 +08:00
parent 7a7932e534
commit 090b380d2e
8 changed files with 67 additions and 50 deletions
@@ -23,7 +23,7 @@ class BooksAdapterGrid(context: Context, private val callBack: CallBack) :
item: Book,
payloads: MutableList<Any>
) = binding.run {
binding.ivCover.transitionName = "book_${item.bookUrl}"
binding.cdCover.transitionName = "book_${item.bookUrl}"
if (payloads.isEmpty()) {
tvName.text = item.name
ivCover.load(item.getDisplayCover(), item.name, item.author, false, item.origin)
@@ -66,13 +66,13 @@ class BooksAdapterGrid(context: Context, private val callBack: CallBack) :
binding.cvContent.setOnClickListener {
getItem(holder.layoutPosition)?.let {
callBack.open(it, binding.ivCover)
callBack.open(it, binding.cdCover)
}
}
binding.cvContent.setOnLongClickListener {
getItem(holder.layoutPosition)?.let {
callBack.openBookInfo(it, binding.ivCover)
callBack.openBookInfo(it, binding.cdCover)
}
true
}
@@ -23,7 +23,7 @@ class BooksAdapterGridCompact(context: Context, private val callBack: CallBack)
item: Book,
payloads: MutableList<Any>
) = binding.run {
binding.ivCover.transitionName = "book_${item.bookUrl}"
binding.cvContent.transitionName = "book_${item.bookUrl}"
if (payloads.isEmpty()) {
tvName.text = item.name
ivCover.load(item.getDisplayCover(), item.name, item.author, false, item.origin)
@@ -76,13 +76,13 @@ class BooksAdapterGridCompact(context: Context, private val callBack: CallBack)
binding.cvContent.setOnClickListener {
getItem(holder.layoutPosition)?.let {
callBack.open(it, binding.ivCover)
callBack.open(it, binding.cvContent)
}
}
binding.cvContent.setOnLongClickListener {
getItem(holder.layoutPosition)?.let {
callBack.openBookInfo(it, binding.ivCover)
callBack.openBookInfo(it, binding.cvContent)
}
true
}
@@ -24,7 +24,7 @@ class BooksAdapterGridCover(context: Context, private val callBack: CallBack) :
item: Book,
payloads: MutableList<Any>
) = binding.run {
binding.ivCover.transitionName = "book_${item.bookUrl}"
binding.cvContent.transitionName = "book_${item.bookUrl}"
if (payloads.isEmpty()) {
tvName.gone()
ivCover.load(item.getDisplayCover(), item.name, item.author, false, item.origin)
@@ -77,13 +77,13 @@ class BooksAdapterGridCover(context: Context, private val callBack: CallBack) :
binding.cvContent.setOnClickListener {
getItem(holder.layoutPosition)?.let {
callBack.open(it, binding.ivCover)
callBack.open(it, binding.cvContent)
}
}
binding.cvContent.setOnLongClickListener {
getItem(holder.layoutPosition)?.let {
callBack.openBookInfo(it, binding.ivCover)
callBack.openBookInfo(it, binding.cvContent)
}
true
}
@@ -149,10 +149,10 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) :
fun registerListener(item: Any) {
binding.cvContent.setOnClickListener {
callBack.onItemClick(item, binding.ivCover)
callBack.onItemClick(item, binding.cdCover)
}
binding.cvContent.onLongClick {
callBack.onItemLongClick(item, binding.ivCover)
callBack.onItemLongClick(item, binding.cdCover)
}
}
@@ -99,10 +99,10 @@ class BooksAdapterGridCompact(context: Context, callBack: CallBack) :
fun registerListener(item: Any) {
binding.cvContent.setOnClickListener {
callBack.onItemClick(item, binding.ivCover)
callBack.onItemClick(item, binding.cvContent)
}
binding.cvContent.onLongClick {
callBack.onItemLongClick(item, binding.ivCover)
callBack.onItemLongClick(item, binding.cvContent)
}
}
@@ -156,10 +156,10 @@ class BooksAdapterGridCompact(context: Context, callBack: CallBack) :
fun registerListener(item: Any) {
binding.cvContent.setOnClickListener {
callBack.onItemClick(item, binding.ivCover)
callBack.onItemClick(item, binding.cvContent)
}
binding.cvContent.onLongClick {
callBack.onItemLongClick(item, binding.ivCover)
callBack.onItemLongClick(item, binding.cvContent)
}
}
@@ -99,10 +99,10 @@ class BooksAdapterGridCover(context: Context, callBack: CallBack) :
fun registerListener(item: Any) {
binding.cvContent.setOnClickListener {
callBack.onItemClick(item, binding.ivCover)
callBack.onItemClick(item, binding.cvContent)
}
binding.cvContent.onLongClick {
callBack.onItemLongClick(item, binding.ivCover)
callBack.onItemLongClick(item, binding.cvContent)
}
}
@@ -156,10 +156,10 @@ class BooksAdapterGridCover(context: Context, callBack: CallBack) :
fun registerListener(item: Any) {
binding.cvContent.setOnClickListener {
callBack.onItemClick(item, binding.ivCover)
callBack.onItemClick(item, binding.cvContent)
}
binding.cvContent.onLongClick {
callBack.onItemLongClick(item, binding.ivCover)
callBack.onItemLongClick(item, binding.cvContent)
}
}
+20 -12
View File
@@ -25,19 +25,27 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- 书封面 -->
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover"
<com.google.android.material.card.MaterialCardView
android:id="@+id/cd_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardCornerRadius="8dp"
app:layout_constraintEnd_toEndOf="parent"
android:layout_margin="8dp"
android:scaleType="centerCrop"
android:src="@drawable/image_cover_default"
android:transitionName="img_cover"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:ignore="ImageContrastCheck" />
app:strokeWidth="0dp">
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/image_cover_default"
tools:ignore="ImageContrastCheck" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/rl_loading"
@@ -48,9 +56,9 @@
android:indeterminate="true"
android:visibility="invisible"
android:layout_gravity="top"
app:layout_constraintTop_toTopOf="@id/iv_cover"
app:layout_constraintStart_toStartOf="@id/iv_cover"
app:layout_constraintEnd_toEndOf="@id/iv_cover" />
app:layout_constraintEnd_toEndOf="@id/cd_cover"
app:layout_constraintStart_toStartOf="@id/cd_cover"
app:layout_constraintTop_toTopOf="@id/cd_cover" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/cd_unread"
@@ -61,8 +69,8 @@
app:cardCornerRadius="4dp"
app:strokeWidth="0dp"
app:cardBackgroundColor="?attr/colorSecondaryVariant"
app:layout_constraintTop_toTopOf="@id/iv_cover"
app:layout_constraintEnd_toEndOf="@id/iv_cover">
app:layout_constraintEnd_toEndOf="@id/cd_cover"
app:layout_constraintTop_toTopOf="@id/cd_cover">
<TextView
android:id="@+id/tv_unread"
@@ -25,18 +25,27 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover"
<com.google.android.material.card.MaterialCardView
android:id="@+id/cd_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardCornerRadius="8dp"
app:layout_constraintEnd_toEndOf="parent"
android:layout_margin="8dp"
android:scaleType="centerCrop"
android:src="?attr/colorSurfaceVariant"
android:transitionName="img_cover"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:ignore="ImageContrastCheck" />
app:strokeWidth="0dp">
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="?attr/colorSurfaceVariant"
tools:ignore="ImageContrastCheck" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/rl_loading"
@@ -47,9 +56,9 @@
android:indeterminate="true"
android:visibility="invisible"
android:layout_gravity="top"
app:layout_constraintTop_toTopOf="@id/iv_cover"
app:layout_constraintStart_toStartOf="@id/iv_cover"
app:layout_constraintEnd_toEndOf="@id/iv_cover" />
app:layout_constraintEnd_toEndOf="@id/cd_cover"
app:layout_constraintStart_toStartOf="@id/cd_cover"
app:layout_constraintTop_toTopOf="@id/cd_cover" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/cd_unread"
@@ -60,8 +69,8 @@
app:cardCornerRadius="4dp"
app:strokeWidth="0dp"
app:cardBackgroundColor="?attr/colorSecondaryVariant"
app:layout_constraintTop_toTopOf="@id/iv_cover"
app:layout_constraintEnd_toEndOf="@id/iv_cover">
app:layout_constraintEnd_toEndOf="@id/cd_cover"
app:layout_constraintTop_toTopOf="@id/cd_cover">
<TextView
android:id="@+id/tv_unread"
@@ -85,8 +94,8 @@
android:layout_marginBottom="2dp"
android:layout_marginStart="4dp"
android:layout_marginEnd="2dp"
app:layout_constraintTop_toTopOf="@id/iv_cover"
app:layout_constraintStart_toStartOf="@id/iv_cover"
app:layout_constraintStart_toStartOf="@id/cd_cover"
app:layout_constraintTop_toTopOf="@id/cd_cover"
app:layout_constraintEnd_toStartOf="@id/iv_cover2"
app:layout_constraintBottom_toTopOf="@id/iv_cover3"/>
@@ -98,8 +107,8 @@
android:layout_marginBottom="2dp"
android:layout_marginEnd="4dp"
android:layout_marginStart="2dp"
app:layout_constraintTop_toTopOf="@id/iv_cover"
app:layout_constraintEnd_toEndOf="@id/iv_cover"
app:layout_constraintEnd_toEndOf="@id/cd_cover"
app:layout_constraintTop_toTopOf="@id/cd_cover"
app:layout_constraintStart_toEndOf="@id/iv_cover1"
app:layout_constraintBottom_toTopOf="@id/iv_cover4"/>
@@ -111,8 +120,8 @@
android:layout_marginStart="4dp"
android:layout_marginBottom="4dp"
android:layout_marginEnd="2dp"
app:layout_constraintStart_toStartOf="@id/iv_cover"
app:layout_constraintBottom_toBottomOf="@id/iv_cover"
app:layout_constraintBottom_toBottomOf="@id/cd_cover"
app:layout_constraintStart_toStartOf="@id/cd_cover"
app:layout_constraintTop_toBottomOf="@id/iv_cover1"
app:layout_constraintEnd_toStartOf="@id/iv_cover4"/>
@@ -124,8 +133,8 @@
android:layout_marginEnd="4dp"
android:layout_marginBottom="4dp"
android:layout_marginStart="2dp"
app:layout_constraintBottom_toBottomOf="@id/iv_cover"
app:layout_constraintEnd_toEndOf="@id/iv_cover"
app:layout_constraintBottom_toBottomOf="@id/cd_cover"
app:layout_constraintEnd_toEndOf="@id/cd_cover"
app:layout_constraintTop_toBottomOf="@id/iv_cover2"
app:layout_constraintStart_toEndOf="@id/iv_cover3"/>