From b8ed2b19e0aaf3c357e2f601d8304acdc525f4f9 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 25 四月 2025 16:54:02 +0800
Subject: [PATCH] refactor(nfc): 优化 NFC 读卡工具类

---
 README.md |  109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 109 insertions(+), 0 deletions(-)

diff --git a/README.md b/README.md
index 7bbc25a..5b607f1 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 鏁版嵁搴�

--
Gitblit v1.8.0