From 59237ecbcb9828b1dc762da07f83fa598bd9d6b2 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 03 六月 2025 18:07:01 +0800
Subject: [PATCH] fix(NewCard2Activity): 优化读卡逻辑
---
README.md | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 114 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
index 7bbc25a..f276ded 100644
--- a/README.md
+++ b/README.md
@@ -111,6 +111,115 @@
- 鑷畾涔夌粦瀹氶�傞厤鍣�
- 琛ㄨ揪寮忔敮鎸�
+### RecyclerView 鍒楄〃涓虹┖鏃剁殑瀹炵幇
+鍦� RecyclerView 閫傞厤鍣ㄤ腑锛屽綋鍒楄〃鏁版嵁涓虹┖鏃讹紝鏄剧ず涓�涓┖瑙嗗浘锛圗mptyView锛夌殑瀹炵幇鏂瑰紡锛�
+
+1. 缁ф壙 BaseRecycleAdapter锛�
+```kotlin
+class YourAdapter : BaseRecycleAdapter<RecyclerView.ViewHolder>() {
+ // 瀹炵幇蹇呰鐨勬柟娉�
+}
+```
+
+2. 鍦ㄩ�傞厤鍣ㄤ腑瀹氫箟瑙嗗浘绫诲瀷甯搁噺锛堝凡鍦� BaseRecycleAdapter 涓畾涔夛級锛�
+```kotlin
+companion object {
+ const val VIEW_TYPE_ITEM = 1
+ const val VIEW_TYPE_EMPTY = 0
+}
+```
+
+3. 閲嶅啓 getItemViewType 鏂规硶锛�
+```kotlin
+override fun getItemViewType(position: Int): Int {
+ if (dataList.isEmpty()) {
+ return VIEW_TYPE_EMPTY
+ }
+ return VIEW_TYPE_ITEM
+}
+```
+
+4. 閲嶅啓 getItemCount 鏂规硶锛�
+```kotlin
+override fun getItemCount(): Int {
+ if (dataList.isEmpty()) {
+ return 1 // 杩斿洖1琛ㄧず鏄剧ず绌鸿鍥�
+ }
+ return dataList.size
+}
+```
+
+5. 鍦� onCreateViewHolder 涓鐞嗕笉鍚岀被鍨嬬殑瑙嗗浘锛�
+```kotlin
+override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
+ if (viewType == VIEW_TYPE_EMPTY) {
+ val emptyView: ItemNoMoreBinding = DataBindingUtil.inflate(
+ (parent.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater)!!,
+ R.layout.item_no_more,
+ parent,
+ false
+ )
+ return ViewHolderEmpty(emptyView)
+ } else {
+ val binding = ItemListBinding.inflate(
+ parent.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater,
+ parent,
+ false
+ )
+ return ItemViewHolder(binding.root)
+ }
+}
+```
+
+6. 閲嶅啓 onBindViewHolder 鏂规硶锛�
+```kotlin
+override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
+ if (holder is ViewHolderEmpty) {
+ // 绌鸿鍥句笉闇�瑕佺粦瀹氭暟鎹�
+ return
+ }
+
+ // 缁戝畾鍒楄〃椤规暟鎹�
+ if (holder is ItemViewHolder) {
+ val item = dataList[position]
+ holder.bind(item)
+ }
+}
+```
+
+7. 绌鸿鍥剧殑甯冨眬鏂囦欢绀轰緥锛坕tem_no_more.xml锛夛細
+```xml
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:padding="16dp">
+
+ <ImageView
+ android:layout_width="48dp"
+ android:layout_height="48dp"
+ android:src="@drawable/ic_empty" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:text="鏆傛棤鏁版嵁"
+ android:textColor="@color/text_gray"
+ android:textSize="14sp" />
+ </LinearLayout>
+</layout>
+```
+
+杩欑瀹炵幇鏂瑰紡鐨勪紭鐐癸細
+1. 缁熶竴鐨勭┖瑙嗗浘澶勭悊閫昏緫
+2. 鏀寔鑷畾涔夌┖瑙嗗浘鏍峰紡
+3. 涓嶅奖鍝嶅垪琛ㄦ甯告暟鎹殑鏄剧ず
+4. 渚夸簬缁存姢鍜屾墿灞�
+
## 鏁版嵁搴撶粨鏋�
### GeneralLibrary 鏁版嵁搴�
@@ -257,6 +366,11 @@
- 鏁忔劅鏁版嵁闇�瑕佸姞瀵嗗瓨鍌�
- 娉ㄦ剰鐢ㄦ埛鏁版嵁鐨勫畨鍏ㄥ鐞�
+4. 寮傚父澶勭悊
+ - 鎵�鏈塼ry catch鍧椾腑蹇呴』浣跨敤`CrashReport.postCatchedException(e)`涓婃姤寮傚父
+ - 纭繚寮傚父淇℃伅琚纭褰曞拰涓婃姤
+ - 閬垮厤寮傚父淇℃伅娉勯湶鏁忔劅鏁版嵁
+
## 璐$尞鎸囧崡
1. Fork 椤圭洰
--
Gitblit v1.8.0