From d0a0e8e242e293ad35dfbee1217f1103302818cd Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期四, 03 四月 2025 10:22:48 +0800
Subject: [PATCH] refactor(generallibrary):重构卡片和用户搜索功能
---
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