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):重构卡片和用户搜索功能
---
generallibrary/src/main/java/com/dayu/general/view/CardRefundDialog.kt | 85 +++
generallibrary/src/main/java/com/dayu/general/activity/BSCardFragment.kt | 5
generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt | 6
generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt | 127 +++-
generallibrary/src/main/java/com/dayu/general/adapter/BaseRecycleAdapter.kt | 21
generallibrary/src/main/java/com/dayu/general/view/CardSearchDialog.kt | 8
generallibrary/src/main/res/layout/fragment_card.xml | 302 +++++++----
generallibrary/src/main/java/com/dayu/general/adapter/CardListAdapter.kt | 105 ++-
generallibrary/src/main/java/com/dayu/general/BaseApplication.kt | 2
README.md | 109 ++++
/dev/null | 108 ----
generallibrary/src/main/res/layout/activity_card_list.xml | 49 +
generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt | 12
generallibrary/src/main/res/layout/item_user_list.xml | 26
generallibrary/src/main/java/com/dayu/general/view/SearchDialog.kt | 8
generallibrary/src/main/AndroidManifest.xml | 4
generallibrary/src/main/java/com/dayu/general/adapter/SearchUserListAdapter.kt | 125 +++++
generallibrary/src/main/res/layout/item_card_list.xml | 76 +-
generallibrary/src/main/res/layout/activity_search_user_ge.xml | 42
generallibrary/src/main/res/layout/dialog_card_refund.xml | 205 ++++++++
20 files changed, 1,018 insertions(+), 407 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 鏁版嵁搴�
diff --git a/generallibrary/src/main/AndroidManifest.xml b/generallibrary/src/main/AndroidManifest.xml
index 32912b8..3172cdf 100644
--- a/generallibrary/src/main/AndroidManifest.xml
+++ b/generallibrary/src/main/AndroidManifest.xml
@@ -49,7 +49,7 @@
<!-- </activity>-->
<activity android:name="com.dayu.general.activity.NewCardActivity" />
<activity android:name="com.dayu.general.activity.ManageListActivity" />
- <activity android:name="com.dayu.general.activity.SearchUserActivity"/>
+ <activity android:name="com.dayu.general.activity.SearchUserListActivity"/>
<activity android:name="com.dayu.general.activity.NfcWreatActivity"
android:exported="false"
android:launchMode="singleTop"
@@ -71,7 +71,7 @@
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
- <activity android:name=".activity.CardListActivity"/>
+ <activity android:name=".activity.SearchCardListActivity"/>
diff --git a/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt b/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt
index 15842a8..facf186 100644
--- a/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt
+++ b/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt
@@ -47,7 +47,7 @@
}
fun init() {
- projectDataDao = application?.let { BaseDaoSingleton.getInstance(it)?.projectDataDao() }
+ projectDataDao = application?.let { BaseDaoSingleton.getInstance(it).projectDataDao() }
if (projectDataDao != null) {
val projectDataBean = projectDataDao?.findFirst()
if (projectDataBean != null) {
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/BSCardFragment.kt b/generallibrary/src/main/java/com/dayu/general/activity/BSCardFragment.kt
index 2a5ad7c..9cc98ad 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/BSCardFragment.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/BSCardFragment.kt
@@ -7,7 +7,6 @@
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.dayu.general.databinding.FragmentCardBinding
-import com.tencent.bugly.proguard.v
/**
* @author: zuo
@@ -33,7 +32,7 @@
private fun initView() {
binding?.homeNewCard?.setOnClickListener {
- val intent = Intent(context, SearchUserActivity::class.java).apply {
+ val intent = Intent(context, SearchUserListActivity::class.java).apply {
putExtra("type", "newUser")
}
startActivity(intent)
@@ -43,7 +42,7 @@
startActivity(intent)
}
binding?.homeLossLL?.setOnClickListener {
- val intent = Intent(context, CardListActivity::class.java).apply{
+ val intent = Intent(context, SearchCardListActivity::class.java).apply{
putExtra("type", "loss")
}
startActivity(intent)
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt
index 6d9dc1c..4e425e0 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt
@@ -62,9 +62,9 @@
private fun initView() {
- binding!!.BSCardLL.setOnClickListener { v -> changeBottomState(Tab.BSC) }
- binding!!.rechargeLL.setOnClickListener { v -> changeBottomState(Tab.RECHARGE) }
- binding!!.myLL.setOnClickListener { v -> changeBottomState(Tab.MY) }
+ binding!!.BSCardLL.setOnClickListener { changeBottomState(Tab.BSC) }
+ binding!!.rechargeLL.setOnClickListener { changeBottomState(Tab.RECHARGE) }
+ binding!!.myLL.setOnClickListener { changeBottomState(Tab.MY) }
}
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt
similarity index 70%
rename from generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt
rename to generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt
index 43874cd..58f452c 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt
@@ -6,12 +6,14 @@
import com.dayu.baselibrary.utils.ToastUtil
import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE
import com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_IMAGE
+import com.dayu.general.BaseApplication
import com.dayu.general.adapter.CardListAdapter
import com.dayu.general.bean.net.SearchCardResult
import com.dayu.general.databinding.ActivityCardListBinding
-import com.dayu.general.view.CardSearchDialog
import com.dayu.general.net.ApiManager
import com.dayu.general.net.BaseResponse
+import com.dayu.general.view.CardRefundDialog
+import com.dayu.general.view.SearchDialog
import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
@@ -20,21 +22,21 @@
* @date: 2023/3/31
* @description: 鍗$墖鍒楄〃鐣岄潰
*/
-class CardListActivity : BaseActivity() {
+class SearchCardListActivity : BaseActivity() {
var binding: ActivityCardListBinding? = null
private var cardAdapter: CardListAdapter? = null
- var searchDialog: CardSearchDialog? = null
-
+ var searchDialog: SearchDialog? = null
+
// 鍒嗛〉鐩稿叧鍙橀噺
private var currentPage = 1
private val pageSize = 20
private var hasMoreData = true
-
+
// 淇濆瓨褰撳墠鎼滅储鏉′欢
+ private var currentFarmerId = ""
+ private var currentFarmerName = ""
private var currentCardNumber = ""
- private var currentClientNumber = ""
- private var currentClientName = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -46,23 +48,23 @@
}
fun initView() {
- searchDialog = CardSearchDialog(this)
+ searchDialog = SearchDialog(this)
searchDialog?.show()
binding?.titleBar?.setOnItemclickListner(ClickType_LEFT_IMAGE) { this.finish() }
// 璁剧疆鎼滅储鐩戝惉鍣�
- searchDialog?.setOnSearchListener(object : CardSearchDialog.OnSearchListener {
- override fun onSearch(cardNumber: String, clientNumber: String, clientName: String) {
+ searchDialog?.setOnSearchListener(object : SearchDialog.OnSearchListener {
+ override fun onSearch(farmerId: String, farmerName: String, cardNumber: String) {
// 淇濆瓨褰撳墠鎼滅储鏉′欢
currentCardNumber = cardNumber
- currentClientNumber = clientNumber
- currentClientName = clientName
-
+ currentFarmerId = farmerId
+ currentFarmerName = farmerName
+
// 閲嶇疆鍒嗛〉鐘舵��
currentPage = 1
hasMoreData = true
-
+
// 鎵ц鎼滅储
- searchCards(cardNumber, clientNumber, clientName, true)
+ searchCards(currentFarmerId, currentFarmerName, currentCardNumber, true)
}
})
binding?.titleBar?.setOnItemclickListner(ClickType_RIGHT_IMAGE) {
@@ -72,23 +74,31 @@
}
private fun setupRecyclerView() {
- cardAdapter = CardListAdapter()
+ cardAdapter = CardListAdapter(this)
binding?.recyclerView?.apply {
- layoutManager = LinearLayoutManager(this@CardListActivity)
+ layoutManager = LinearLayoutManager(this@SearchCardListActivity)
adapter = cardAdapter
}
-
+
// 璁剧疆鍒楄〃椤圭偣鍑讳簨浠�
cardAdapter?.setOnItemClickListener { card ->
- // 澶勭悊鍗$墖鐐瑰嚮浜嬩欢
- ToastUtil.show("宸查�夋嫨鍗$墖锛�${card.cardNum}")
- // 杩欓噷鍙互娣诲姞璺宠浆鍒板崱鐗囪鎯呴〉闈㈢殑閫昏緫
- // val intent = Intent(this, CardDetailActivity::class.java)
- // intent.putExtra("cardNum", card.cardNum)
- // startActivity(intent)
+ // 鏄剧ず閫�娆惧璇濇
+ val refundDialog = CardRefundDialog(this)
+ refundDialog.show() // 鍏堟樉绀哄璇濇
+ refundDialog.setUserInfo(
+ card.clientName.toString(),
+ card.cardNum.toString(),
+ card.money.toString()
+ )
+ refundDialog.setOnConfirmListener { refundAmount, remark ->
+ // TODO: 澶勭悊閫�娆鹃�昏緫
+ lossPost(card.idCard.toString())
+ }
}
+
+
}
-
+
private fun setupRefreshLayout() {
binding?.refreshLayout?.apply {
// 璁剧疆鍒锋柊鍜屽姞杞芥洿澶氱洃鍚櫒
@@ -97,14 +107,14 @@
// 閲嶇疆椤电爜骞跺埛鏂版暟鎹�
currentPage = 1
hasMoreData = true
- searchCards(currentCardNumber, currentClientNumber, currentClientName, true)
+ searchCards(currentFarmerId, currentFarmerName, currentCardNumber, true)
}
-
+
override fun onLoadMore(refreshLayout: RefreshLayout) {
// 濡傛灉杩樻湁鏇村鏁版嵁锛屽姞杞戒笅涓�椤�
if (hasMoreData) {
currentPage++
- searchCards(currentCardNumber, currentClientNumber, currentClientName, false)
+ searchCards(currentFarmerId, currentFarmerName, currentCardNumber, false)
} else {
// 瀹屾垚鍔犺浇骞舵彁绀烘病鏈夋洿澶氭暟鎹�
refreshLayout.finishLoadMore(500, true, false)
@@ -126,21 +136,26 @@
* @param clientName 瀹㈡埛濮撳悕
* @param isRefresh 鏄惁涓哄埛鏂版搷浣�
*/
- private fun searchCards(cardNumber: String, clientNumber: String, clientName: String, isRefresh: Boolean = true) {
+ private fun searchCards(
+ farmerId: String,
+ farmerName: String,
+ cardNumber: String,
+ isRefresh: Boolean = true
+ ) {
val map = mutableMapOf<String, Any>()
if (cardNumber.isNotEmpty()) {
map["cardNum"] = cardNumber
}
- if (clientNumber.isNotEmpty()) {
- map["clientNum"] = clientNumber
+ if (farmerId.isNotEmpty()) {
+ map["clientNum"] = farmerId
}
- if (clientName.isNotEmpty()) {
- map["clientName"] = clientName
+ if (farmerName.isNotEmpty()) {
+ map["clientName"] = farmerName
}
-
+
// 娣诲姞鍒嗛〉鍙傛暟
map["pageCurr"] = currentPage
map["pageSize"] = pageSize
@@ -155,7 +170,7 @@
override fun onNext(t: BaseResponse<SearchCardResult>) {
// 瀹屾垚鍒锋柊鎴栧姞杞藉姩浣�
finishRefreshOrLoad(isRefresh)
-
+
if (t.success) {
// 澶勭悊鎼滅储鎴愬姛鐨勬儏鍐�
val result = t.content
@@ -168,7 +183,7 @@
} else {
cardAdapter?.addData(result.obj)
}
-
+
// 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁锛氭牴鎹綋鍓嶉〉鐮佸拰鎬婚〉鏁板垽鏂�
hasMoreData = currentPage < result.pageTotal
} else {
@@ -201,7 +216,40 @@
}
)
}
-
+
+
+ private fun lossPost(cardNumber: String) {
+ val map = mutableMapOf<String, Any>()
+
+ map["cardNum"] = cardNumber
+ map["operator"] = BaseApplication.userId
+ ApiManager.getInstance().requestGetLoading(
+ this,
+ "/sell/card/loss",
+ SearchCardResult::class.java,
+ map,
+ object : SubscriberListener<BaseResponse<SearchCardResult>>() {
+ override fun onNext(t: BaseResponse<SearchCardResult>) {
+
+
+ if (t.success) {
+
+ } else {
+ // 澶勭悊鎼滅储澶辫触鐨勬儏鍐�
+ ToastUtil.show(t.msg)
+ }
+ }
+
+ override fun onError(e: Throwable?) {
+ super.onError(e)
+ // 瀹屾垚鍒锋柊鎴栧姞杞藉姩浣�
+ ToastUtil.show("鎼滅储澶辫触: ${e?.message ?: "鏈煡閿欒"}")
+ }
+ }
+ )
+ }
+
+
/**
* 瀹屾垚鍒锋柊鎴栧姞杞芥搷浣�
* @param isRefresh 鏄惁涓哄埛鏂版搷浣�
@@ -213,4 +261,9 @@
binding?.refreshLayout?.finishLoadMore(true)
}
}
+
+ override fun onDestroy() {
+ super.onDestroy()
+ searchDialog?.dismiss()
+ }
}
\ No newline at end of file
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt
similarity index 96%
rename from generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt
rename to generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt
index b284cea..5e11d51 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt
@@ -6,7 +6,7 @@
import com.dayu.baselibrary.utils.ToastUtil
import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE
import com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_IMAGE
-import com.dayu.general.adapter.SearchListAdapter
+import com.dayu.general.adapter.SearchUserListAdapter
import com.dayu.general.bean.net.SearchUserResult
import com.dayu.general.databinding.ActivitySearchUserGeBinding
import com.dayu.general.view.SearchDialog
@@ -20,10 +20,10 @@
* @date: 2023/6/26 16:09
* @description:鎼滅储鐢ㄦ埛
*/
-class SearchUserActivity : BaseActivity() {
+class SearchUserListActivity : BaseActivity() {
var binding: ActivitySearchUserGeBinding? = null
- private var userAdapter: SearchListAdapter? = null
+ private var userAdapter: SearchUserListAdapter? = null
var searchDialog: SearchDialog? = null
// 鍒嗛〉鐩稿叧鍙橀噺
@@ -74,9 +74,9 @@
}
private fun setupRecyclerView() {
- userAdapter = SearchListAdapter()
+ userAdapter = SearchUserListAdapter()
binding?.recyclerView?.apply {
- layoutManager = LinearLayoutManager(this@SearchUserActivity)
+ layoutManager = LinearLayoutManager(this@SearchUserListActivity)
adapter = userAdapter
}
@@ -89,6 +89,8 @@
// intent.putExtra("userId", user.id)
// startActivity(intent)
}
+
+
}
private fun setupRefreshLayout() {
diff --git a/generallibrary/src/main/java/com/dayu/general/adapter/BaseRecycleAdapter.kt b/generallibrary/src/main/java/com/dayu/general/adapter/BaseRecycleAdapter.kt
index 54ed289..1073b23 100644
--- a/generallibrary/src/main/java/com/dayu/general/adapter/BaseRecycleAdapter.kt
+++ b/generallibrary/src/main/java/com/dayu/general/adapter/BaseRecycleAdapter.kt
@@ -9,27 +9,18 @@
* Author: zuo
* Date: 2025/3/10
*/
-class BaseRecycleAdapter<T : RecyclerView.ViewHolder>:RecyclerView.Adapter<T>() {
+abstract class BaseRecycleAdapter<T : RecyclerView.ViewHolder>:RecyclerView.Adapter<T>() {
companion object {
const val VIEW_TYPE_ITEM = 1
const val VIEW_TYPE_EMPTY = 0
}
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): T {
- TODO("Not yet implemented")
+ abstract override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): T
- }
+ abstract override fun getItemCount(): Int
- override fun getItemCount(): Int {
- TODO("Not yet implemented")
-
- }
-
- override fun onBindViewHolder(holder: T, position: Int) {
- TODO("Not yet implemented")
-
- }
-
+// abstract override fun onBindViewHolder(holder: T, position: Int)
+//
class ViewHolderEmpty(binding: ItemNoMoreBinding) : RecyclerView.ViewHolder(binding.root) {
var mBinding: ItemNoMoreBinding = binding
fun getBinding(): ItemNoMoreBinding {
@@ -40,4 +31,4 @@
this.mBinding = binding
}
}
- }
+}
diff --git a/generallibrary/src/main/java/com/dayu/general/adapter/CardListAdapter.kt b/generallibrary/src/main/java/com/dayu/general/adapter/CardListAdapter.kt
index 6b4e1ea..044ad98 100644
--- a/generallibrary/src/main/java/com/dayu/general/adapter/CardListAdapter.kt
+++ b/generallibrary/src/main/java/com/dayu/general/adapter/CardListAdapter.kt
@@ -1,9 +1,14 @@
package com.dayu.general.adapter
+import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.TextView
+import androidx.databinding.DataBindingUtil
import androidx.recyclerview.widget.RecyclerView
+import com.dayu.baselibrary.databinding.ItemNoMoreBinding
+import com.dayu.general.R
import com.dayu.general.bean.net.SearchCardResult
import com.dayu.general.databinding.ItemCardListBinding
@@ -12,40 +17,82 @@
* Author: zuo
* Date: 2025/3/31
*/
-class CardListAdapter : RecyclerView.Adapter<CardListAdapter.CardViewHolder>() {
+class CardListAdapter(context: Context) : BaseRecycleAdapter<RecyclerView.ViewHolder>() {
- private val cardList = mutableListOf<SearchCardResult.CardInfo>()
+ private var cardList: List<SearchCardResult.CardInfo> = emptyList()
private var onItemClickListener: ((SearchCardResult.CardInfo) -> Unit)? = null
+ var mContext: Context = context
- fun setData(cards: List<SearchCardResult.CardInfo>) {
- cardList.clear()
- cardList.addAll(cards)
+ fun setData(data: List<SearchCardResult.CardInfo>) {
+ cardList = data
notifyDataSetChanged()
}
-
- fun addData(cards: List<SearchCardResult.CardInfo>) {
- val startPosition = cardList.size
- cardList.addAll(cards)
- notifyItemRangeInserted(startPosition, cards.size)
+
+ fun addData(data: List<SearchCardResult.CardInfo>) {
+ val oldSize = cardList.size
+ cardList = cardList + data
+ notifyItemRangeInserted(oldSize, data.size)
}
-
+
fun setOnItemClickListener(listener: (SearchCardResult.CardInfo) -> Unit) {
- this.onItemClickListener = listener
+ onItemClickListener = listener
}
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CardViewHolder {
- val binding = ItemCardListBinding.inflate(LayoutInflater.from(parent.context), parent, false)
- return CardViewHolder(binding)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
+ if (viewType == VIEW_TYPE_EMPTY) {
+ val emptyView: ItemNoMoreBinding = DataBindingUtil.inflate(
+ (mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater)!!,
+ com.dayu.baselibrary.R.layout.item_no_more,
+ parent,
+ false
+ )
+ return ViewHolderEmpty(emptyView)
+ } else {
+ val binding = ItemCardListBinding.inflate(
+ mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater,
+ parent,
+ false
+ )
+ return CardViewHolder(binding)
+ }
}
- override fun onBindViewHolder(holder: CardViewHolder, position: Int) {
- val card = cardList[position]
- holder.bind(card)
+ override fun getItemViewType(position: Int): Int {
+ if (cardList.size == 0) {
+ return VIEW_TYPE_EMPTY
+ } else {
+ return VIEW_TYPE_ITEM
+ }
}
- override fun getItemCount(): Int = cardList.size
+ override fun getItemCount(): Int {
+ //鍚屾椂杩欓噷涔熼渶瑕佹坊鍔犲垽鏂紝濡傛灉mData.size()涓�0鐨勮瘽锛屽彧寮曞叆涓�涓竷灞�锛屽氨鏄痚mptyView
+ // 閭d箞锛岃繖涓猺ecyclerView鐨刬temCount涓�1
+ if (cardList.size == 0) {
+ return 1
+ }
+ return cardList.size
+ }
+
+ override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
+ if (holder is ViewHolderEmpty) {
+ // 绌鸿鍥句笉闇�瑕佺粦瀹氭暟鎹�
+ return
+ }
+
+ if (holder is CardViewHolder) {
+ val card = cardList[position]
+ holder.bind(card)
+ holder.itemView.setOnClickListener {
+ onItemClickListener?.invoke(card)
+ }
+ }
+ }
+
inner class CardViewHolder(private val binding: ItemCardListBinding) : RecyclerView.ViewHolder(binding.root) {
+
fun bind(card: SearchCardResult.CardInfo) {
// 璁剧疆鏁版嵁鏄剧ず锛屾坊鍔犲垽绌哄鐞�
binding.tvCardNumber.text = "鍗″彿锛�${card.cardNum ?: "鏃�"}"
@@ -55,24 +102,13 @@
binding.tvClientNum.text = "瀹㈡埛缂栧彿锛�${card.clientNum ?: "鏃�"}"
binding.tvCardBalance.text = "浣欓锛�${card.money ?: "0.00"} 鍏�"
binding.tvPhone.text = "鐢佃瘽锛�${formatPhone(card.phone)}"
-
- // 鏄剧ず韬唤璇佸彿
- card.idCard?.let { idCard ->
- if (idCard.isNotEmpty()) {
- binding.tvIdCard.text = "韬唤璇侊細${formatIdCard(idCard)}"
- binding.tvIdCard.visibility = View.VISIBLE
- } else {
- binding.tvIdCard.visibility = View.GONE
- }
- } ?: run {
- binding.tvIdCard.visibility = View.GONE
- }
+ binding.tvIdCard.text = "韬唤璇侊細${formatIdCard( card.idCard)}"
+
binding.root.setOnClickListener {
onItemClickListener?.invoke(card)
}
}
-
// 鏍煎紡鍖栬韩浠借瘉鍙凤紝淇濇姢闅愮
private fun formatIdCard(idCard: String?): String {
return if (!idCard.isNullOrEmpty() && idCard.length >= 18) {
@@ -83,7 +119,7 @@
idCard ?: "鏃�"
}
}
-
+
// 鏍煎紡鍖栨墜鏈哄彿锛屼繚鎶ら殣绉�
private fun formatPhone(phone: String?): String {
return if (!phone.isNullOrEmpty() && phone.length >= 11) {
@@ -94,5 +130,4 @@
phone ?: "鏃�"
}
}
- }
-}
\ No newline at end of file
+} }
\ No newline at end of file
diff --git a/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt b/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
deleted file mode 100644
index d63f6ac..0000000
--- a/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.dayu.general.adapter
-
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.recyclerview.widget.RecyclerView
-import com.dayu.general.bean.net.SearchUserResult
-import com.dayu.general.databinding.ItemUserListBinding
-
-/**
- * Description:
- * Author: zuo
- * Date: 2025/3/10
- */
-class SearchListAdapter : RecyclerView.Adapter<SearchListAdapter.UserViewHolder>(){
-
- private val userList = mutableListOf<SearchUserResult.UserInfo>()
- private var onItemClickListener: ((SearchUserResult.UserInfo) -> Unit)? = null
-
- fun setData(users: List<SearchUserResult.UserInfo>) {
- userList.clear()
- userList.addAll(users)
- notifyDataSetChanged()
- }
-
- fun addData(users: List<SearchUserResult.UserInfo>) {
- val startPosition = userList.size
- userList.addAll(users)
- notifyItemRangeInserted(startPosition, users.size)
- }
-
- fun setOnItemClickListener(listener: (SearchUserResult.UserInfo) -> Unit) {
- this.onItemClickListener = listener
- }
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
- val binding = ItemUserListBinding.inflate(LayoutInflater.from(parent.context), parent, false)
- return UserViewHolder(binding)
- }
-
- override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
- val user = userList[position]
- holder.bind(user)
- }
-
- override fun getItemCount(): Int = userList.size
-
- inner class UserViewHolder(private val binding: ItemUserListBinding) : RecyclerView.ViewHolder(binding.root) {
- fun bind(user: SearchUserResult.UserInfo) {
- // 璁剧疆鏁版嵁鏄剧ず锛屾坊鍔犲垽绌哄鐞�
- binding.tvCardCount.text = "鍗℃暟閲忥細${user.cardCount ?: "0"}"
- binding.tvFarmerId.text = "瀹㈡埛缂栧彿锛�${user.clientNum ?: "鏃�"}"
- binding.tvIdCard.text = "韬唤璇侊細${formatIdCard(user.idCard)}"
- binding.tvName.text = "濮撳悕锛�${user.name ?: "鏈煡"}"
- binding.tvPhone.text = "鐢佃瘽锛�${formatPhone(user.phone)}"
-
- // 娣诲姞鍦板潃淇℃伅鏄剧ず
- user.address?.let { address ->
- if (address.isNotEmpty()) {
- binding.tvAddress.text = "鍦板潃锛�$address"
- binding.tvAddress.visibility = View.VISIBLE
- } else {
- binding.tvAddress.visibility = View.GONE
- }
- } ?: run {
- binding.tvAddress.visibility = View.GONE
- }
-
- // 鏄剧ず鎿嶄綔鏃ユ湡
- user.operateDt?.let { date ->
- if (date.isNotEmpty()) {
- binding.tvOperateDate.text = "鎿嶄綔鏃ユ湡锛�$date"
- binding.tvOperateDate.visibility = View.VISIBLE
- } else {
- binding.tvOperateDate.visibility = View.GONE
- }
- } ?: run {
- binding.tvOperateDate.visibility = View.GONE
- }
-
- binding.root.setOnClickListener {
- onItemClickListener?.invoke(user)
- }
- }
-
- // 鏍煎紡鍖栬韩浠借瘉鍙凤紝淇濇姢闅愮
- private fun formatIdCard(idCard: String?): String {
- return if (!idCard.isNullOrEmpty() && idCard.length >= 18) {
- val start = idCard.substring(0, 6)
- val end = idCard.substring(idCard.length - 4)
- "$start****$end"
- } else {
- idCard ?: "鏃�"
- }
- }
-
- // 鏍煎紡鍖栨墜鏈哄彿锛屼繚鎶ら殣绉�
- private fun formatPhone(phone: String?): String {
- return if (!phone.isNullOrEmpty() && phone.length >= 11) {
- val start = phone.substring(0, 3)
- val end = phone.substring(phone.length - 4)
- "$start****$end"
- } else {
- phone ?: "鏃�"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/generallibrary/src/main/java/com/dayu/general/adapter/SearchUserListAdapter.kt b/generallibrary/src/main/java/com/dayu/general/adapter/SearchUserListAdapter.kt
new file mode 100644
index 0000000..5c311e0
--- /dev/null
+++ b/generallibrary/src/main/java/com/dayu/general/adapter/SearchUserListAdapter.kt
@@ -0,0 +1,125 @@
+package com.dayu.general.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.databinding.DataBindingUtil
+import androidx.recyclerview.widget.RecyclerView
+import com.dayu.baselibrary.databinding.ItemNoMoreBinding
+import com.dayu.general.bean.net.SearchUserResult
+import com.dayu.general.databinding.ItemUserListBinding
+
+/**
+ * Description: 鐢ㄦ埛鍒楄〃閫傞厤鍣�
+ * Author: zuo
+ * Date: 2025/3/10
+ */
+class SearchUserListAdapter : BaseRecycleAdapter<RecyclerView.ViewHolder>() {
+
+ private var userList: List<SearchUserResult.UserInfo> = emptyList()
+ private var onItemClickListener: ((SearchUserResult.UserInfo) -> Unit)? = null
+
+ fun setData(data: List<SearchUserResult.UserInfo>) {
+ userList = data
+ notifyDataSetChanged()
+ }
+
+ fun addData(data: List<SearchUserResult.UserInfo>) {
+ val oldSize = userList.size
+ userList = userList + data
+ notifyItemRangeInserted(oldSize, data.size)
+ }
+
+ fun setOnItemClickListener(listener: (SearchUserResult.UserInfo) -> Unit) {
+ onItemClickListener = listener
+ }
+
+ 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)!!,
+ com.dayu.baselibrary.R.layout.item_no_more,
+ parent,
+ false
+ )
+ return ViewHolderEmpty(emptyView)
+ } else {
+ val binding = ItemUserListBinding.inflate(
+ parent.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater,
+ parent,
+ false
+ )
+ return UserViewHolder(binding)
+ }
+ }
+
+ override fun getItemViewType(position: Int): Int {
+ if (userList.size == 0) {
+ return VIEW_TYPE_EMPTY
+ }else{
+ return VIEW_TYPE_ITEM
+ }
+ }
+
+ override fun getItemCount(): Int {
+ //鍚屾椂杩欓噷涔熼渶瑕佹坊鍔犲垽鏂紝濡傛灉mData.size()涓�0鐨勮瘽锛屽彧寮曞叆涓�涓竷灞�锛屽氨鏄痚mptyView
+ // 閭d箞锛岃繖涓猺ecyclerView鐨刬temCount涓�1
+ if (userList.size == 0) {
+ return 1
+ }
+ return userList.size
+ }
+
+ override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
+ if (holder is ViewHolderEmpty) {
+ // 绌鸿鍥句笉闇�瑕佺粦瀹氭暟鎹�
+ return
+ }
+
+ if (holder is UserViewHolder) {
+ val card = userList[position]
+ holder.bind(card)
+ holder.itemView.setOnClickListener {
+ onItemClickListener?.invoke(card)
+ }
+ }
+ }
+
+
+ class UserViewHolder(private val binding: ItemUserListBinding) : RecyclerView.ViewHolder(binding.root) {
+
+ fun bind(user: SearchUserResult.UserInfo) {
+ binding.tvName.text = user.name
+ binding.tvFarmerId.text = "鍐滄埛缂栧彿锛�${user.clientNum}"
+ binding.tvCardCount.text = "鍗$墖鏁伴噺锛�${user.cardCount}"
+ binding.tvIdCard.text = "韬唤璇佸彿锛�${formatIdCard(user.idCard)}"
+ binding. tvPhone.text = "鑱旂郴鐢佃瘽锛�${formatPhone(user.phone)}"
+ binding.tvAddressValue.text = user.address
+ binding.tvOperateDate.text = "鎿嶄綔鏃ユ湡锛�${user.operateDt}"
+
+
+ }
+
+ // 鏍煎紡鍖栬韩浠借瘉鍙凤紝淇濇姢闅愮
+ private fun formatIdCard(idCard: String?): String {
+ return if (!idCard.isNullOrEmpty() && idCard.length >= 18) {
+ val start = idCard.substring(0, 6)
+ val end = idCard.substring(idCard.length - 4)
+ "$start****$end"
+ } else {
+ idCard ?: "鏃�"
+ }
+ }
+
+ // 鏍煎紡鍖栨墜鏈哄彿锛屼繚鎶ら殣绉�
+ private fun formatPhone(phone: String?): String {
+ return if (!phone.isNullOrEmpty() && phone.length >= 11) {
+ val start = phone.substring(0, 3)
+ val end = phone.substring(phone.length - 4)
+ "$start****$end"
+ } else {
+ phone ?: "鏃�"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/generallibrary/src/main/java/com/dayu/general/view/CardRefundDialog.kt b/generallibrary/src/main/java/com/dayu/general/view/CardRefundDialog.kt
new file mode 100644
index 0000000..8e52159
--- /dev/null
+++ b/generallibrary/src/main/java/com/dayu/general/view/CardRefundDialog.kt
@@ -0,0 +1,85 @@
+package com.dayu.general.view
+
+import android.app.Dialog
+import android.content.Context
+import android.os.Bundle
+import android.view.Gravity
+import android.view.WindowManager
+import com.dayu.general.R
+import com.dayu.general.databinding.DialogCardRefundBinding
+
+/**
+ *
+ */
+class CardRefundDialog(context: Context) : Dialog(context) {
+ private var binding: DialogCardRefundBinding? = null
+ private var onConfirmListener: (( String, String) -> Unit)? = null
+ private var username: String? = null
+ private var cardNumber: String? = null
+ private var balance: String? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = DialogCardRefundBinding.inflate(layoutInflater)
+ binding?.root?.let { setContentView(it) }
+
+ // 璁剧疆瀵硅瘽妗嗗搴︿负灞忓箷瀹藉害鐨�80%
+ val window = window
+ val params = window?.attributes
+ params?.width = (context.resources.displayMetrics.widthPixels * 0.85).toInt()
+ params?.gravity = Gravity.CENTER
+
+ // 璁剧疆鑳屾櫙閫忔槑
+ window?.setBackgroundDrawableResource(android.R.color.transparent)
+
+ // 璁剧疆鎸夐挳鐐瑰嚮浜嬩欢
+ binding?.btnCancel?.setOnClickListener {
+ dismiss()
+ }
+
+ binding?.btnConfirm?.setOnClickListener {
+ val refundAmount = binding?.etRefundAmount?.text.toString()
+ val remark = binding?.etRemark?.text.toString()
+
+ if (refundAmount.isEmpty()) {
+ // TODO: 鏄剧ず閿欒鎻愮ず
+ return@setOnClickListener
+ }
+
+ onConfirmListener?.invoke(refundAmount, remark)
+ dismiss()
+ }
+
+ // 濡傛灉鏈夐璁剧殑鐢ㄦ埛淇℃伅锛岃缃畠浠�
+ username?.let { username ->
+ cardNumber?.let { cardNumber ->
+ balance?.let { balance ->
+ setUserInfo(username, cardNumber, balance)
+ }
+ }
+ }
+ }
+
+ override fun show() {
+ super.show()
+ // 娓呯┖杈撳叆妗�
+ binding?.etRefundAmount?.setText("")
+ binding?.etRemark?.setText("")
+ }
+
+ fun setUserInfo(username: String, cardNumber: String, balance: String) {
+ this.username = username
+ this.cardNumber = cardNumber
+ this.balance = balance
+
+ binding?.apply {
+ tvUsernameValue.text = username
+ tvCardNumberValue.text = cardNumber
+ etBalance.setText(balance+"鍏�")
+ }
+ }
+
+ fun setOnConfirmListener(listener: ( String, String) -> Unit) {
+ onConfirmListener = listener
+ }
+}
\ No newline at end of file
diff --git a/generallibrary/src/main/java/com/dayu/general/view/CardSearchDialog.kt b/generallibrary/src/main/java/com/dayu/general/view/CardSearchDialog.kt
index cf0d808..8069d09 100644
--- a/generallibrary/src/main/java/com/dayu/general/view/CardSearchDialog.kt
+++ b/generallibrary/src/main/java/com/dayu/general/view/CardSearchDialog.kt
@@ -52,6 +52,14 @@
}
}
+ override fun show() {
+ super.show()
+ // 娓呯┖杈撳叆妗�
+ binding.etCardNumber.setText("")
+ binding.etClientNumber.setText("")
+ binding.etClientName.setText("")
+ }
+
/**
* 璁剧疆鎼滅储鐩戝惉鍣�
*/
diff --git a/generallibrary/src/main/java/com/dayu/general/view/SearchDialog.kt b/generallibrary/src/main/java/com/dayu/general/view/SearchDialog.kt
index 0f82113..fc6b280 100644
--- a/generallibrary/src/main/java/com/dayu/general/view/SearchDialog.kt
+++ b/generallibrary/src/main/java/com/dayu/general/view/SearchDialog.kt
@@ -52,6 +52,14 @@
}
}
+ override fun show() {
+ super.show()
+ // 娓呯┖杈撳叆妗�
+ binding.etFarmerId.setText("")
+ binding.etFarmerName.setText("")
+ binding.etCardNumber.setText("")
+ }
+
/**
* 璁剧疆鎼滅储鐩戝惉鍣�
*/
diff --git a/generallibrary/src/main/res/layout/activity_card_list.xml b/generallibrary/src/main/res/layout/activity_card_list.xml
index 5a14bb8..cea652a 100644
--- a/generallibrary/src/main/res/layout/activity_card_list.xml
+++ b/generallibrary/src/main/res/layout/activity_card_list.xml
@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- tools:context=".activity.CardListActivity">
+ tools:context=".activity.SearchCardListActivity">
<com.dayu.baselibrary.view.TitleBar
android:id="@+id/title_bar"
@@ -16,30 +16,39 @@
app:leftImage="@mipmap/icon_back"
app:rightImage="@mipmap/icon_search" />
- <com.scwang.smart.refresh.layout.SmartRefreshLayout
- android:id="@+id/refresh_layout"
+ <FrameLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- app:srlAccentColor="@color/colorPrimary"
- app:srlEnablePreviewInEditMode="true">
+ android:layout_height="0dp"
+ android:layout_weight="1">
- <com.scwang.smart.refresh.header.ClassicsHeader
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
-
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/recycler_view"
+ <com.scwang.smart.refresh.layout.SmartRefreshLayout
+ android:id="@+id/refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingTop="8dp"
- android:paddingBottom="8dp"
- android:clipToPadding="false"
- android:overScrollMode="never" />
+ app:srlAccentColor="@color/colorPrimary"
+ app:srlEnablePreviewInEditMode="true">
- <com.scwang.smart.refresh.footer.ClassicsFooter
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
+ <com.scwang.smart.refresh.header.ClassicsHeader
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
- </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recycler_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:clipToPadding="false"
+ android:overScrollMode="never" />
+
+ <com.scwang.smart.refresh.footer.ClassicsFooter
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+
+
+ </FrameLayout>
</LinearLayout>
\ No newline at end of file
diff --git a/generallibrary/src/main/res/layout/activity_search_user_ge.xml b/generallibrary/src/main/res/layout/activity_search_user_ge.xml
index 85198ca..8eae170 100644
--- a/generallibrary/src/main/res/layout/activity_search_user_ge.xml
+++ b/generallibrary/src/main/res/layout/activity_search_user_ge.xml
@@ -16,31 +16,35 @@
app:leftImage="@mipmap/icon_back"
app:rightImage="@mipmap/icon_search"/>
-
- <com.scwang.smart.refresh.layout.SmartRefreshLayout
- android:id="@+id/refreshLayout"
+ <FrameLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_below="@+id/titleBar">
+ android:layout_height="0dp"
+ android:layout_weight="1">
- <com.scwang.smart.refresh.header.ClassicsHeader
+ <com.scwang.smart.refresh.layout.SmartRefreshLayout
+ android:id="@+id/refreshLayout"
android:layout_width="match_parent"
- android:layout_height="wrap_content" />
-
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/recyclerView"
- android:layout_width="match_parent"
-
android:layout_height="match_parent"
- android:background="@color/base_list_bg"
- android:overScrollMode="never"
- android:padding="10dp" />
+ android:layout_below="@+id/titleBar">
- <com.scwang.smart.refresh.footer.ClassicsFooter
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
- </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+ <com.scwang.smart.refresh.header.ClassicsHeader
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recyclerView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/base_list_bg"
+ android:overScrollMode="never"
+ android:padding="10dp" />
+
+ <com.scwang.smart.refresh.footer.ClassicsFooter
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+ </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+ </FrameLayout>
</LinearLayout>
\ No newline at end of file
diff --git a/generallibrary/src/main/res/layout/dialog_card_refund.xml b/generallibrary/src/main/res/layout/dialog_card_refund.xml
new file mode 100644
index 0000000..5996b2c
--- /dev/null
+++ b/generallibrary/src/main/res/layout/dialog_card_refund.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/search_dialog_bg"
+ android:padding="20dp">
+
+ <TextView
+ android:id="@+id/tv_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鎸傚け纭"
+ android:textColor="@color/black"
+ android:textSize="20sp"
+ android:textStyle="bold"
+ app:layout_constraintLeft_toLeftOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <View
+ android:id="@+id/divider"
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:layout_marginTop="12dp"
+ android:background="#E0E0E0"
+ app:layout_constraintTop_toBottomOf="@id/tv_title" />
+
+ <LinearLayout
+ android:id="@+id/layoutUsername"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ app:layout_constraintTop_toBottomOf="@id/divider">
+
+ <TextView
+ android:id="@+id/tvUsername"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鐢ㄦ埛鍚嶏細"
+ android:textColor="#666666"
+ android:textSize="14sp" />
+
+ <TextView
+ android:id="@+id/tvUsernameValue"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="5dp"
+ android:layout_weight="1"
+ android:padding="5dp"
+ android:textColor="@color/black"
+ android:textSize="15sp" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layoutCardNumber"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ app:layout_constraintTop_toBottomOf="@id/layoutUsername">
+
+ <TextView
+ android:id="@+id/tvCardNumber"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鍗� 鍙凤細"
+ android:textColor="#666666"
+ android:textSize="14sp" />
+
+ <TextView
+ android:id="@+id/tvCardNumberValue"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="5dp"
+ android:layout_weight="1"
+ android:padding="5dp"
+ android:textColor="@color/black"
+ android:textSize="15sp" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layoutBalance"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ app:layout_constraintTop_toBottomOf="@id/layoutCardNumber">
+
+ <TextView
+ android:id="@+id/tvBalance"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="浣� 棰濓細"
+ android:textColor="#666666"
+ android:textSize="14sp" />
+
+ <TextView
+ android:id="@+id/etBalance"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="5dp"
+ android:singleLine="true"
+ android:layout_marginStart="5dp"
+ android:textColor="@color/black"
+ android:textSize="15sp"
+ app:layout_constraintTop_toBottomOf="@id/tvBalance" />
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/tvRefundAmount"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="14dp"
+ android:text="閫�杩橀噾棰�"
+ android:textColor="#666666"
+ android:textSize="14sp"
+ app:layout_constraintLeft_toLeftOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/layoutBalance" />
+
+ <EditText
+ android:id="@+id/etRefundAmount"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="6dp"
+ android:background="@drawable/edit_text_bg"
+ android:hint="璇疯緭鍏ラ��杩橀噾棰�(閫夊~)"
+ android:inputType="numberDecimal"
+ android:padding="12dp"
+ android:singleLine="true"
+ android:textColorHint="#BBBBBB"
+ android:textSize="15sp"
+ app:layout_constraintTop_toBottomOf="@id/tvRefundAmount" />
+
+ <TextView
+ android:id="@+id/tvRemark"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="14dp"
+ android:text="澶囨敞"
+ android:textColor="#666666"
+ android:textSize="14sp"
+ app:layout_constraintLeft_toLeftOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/etRefundAmount" />
+
+ <EditText
+ android:id="@+id/etRemark"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="6dp"
+ android:background="@drawable/edit_text_bg"
+ android:hint="璇疯緭鍏ュ娉�(閫夊~)"
+ android:inputType="textMultiLine"
+ android:minLines="2"
+ android:padding="12dp"
+ android:textColorHint="#BBBBBB"
+ android:textSize="15sp"
+ app:layout_constraintTop_toBottomOf="@id/tvRemark" />
+
+ <Button
+ android:id="@+id/btnCancel"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="24dp"
+ android:layout_marginEnd="6dp"
+ android:background="@drawable/cancel_button_ripple"
+ android:clickable="true"
+ android:focusable="true"
+ android:paddingTop="10dp"
+ android:paddingBottom="10dp"
+ android:stateListAnimator="@null"
+ android:text="鍙栨秷"
+ android:textColor="#666666"
+ android:textSize="15sp"
+ app:layout_constraintEnd_toStartOf="@id/btnConfirm"
+ app:layout_constraintHorizontal_chainStyle="packed"
+ app:layout_constraintHorizontal_weight="1"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/etRemark" />
+
+ <Button
+ android:id="@+id/btnConfirm"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="6dp"
+ android:background="@drawable/search_button_ripple"
+ android:clickable="true"
+ android:elevation="2dp"
+ android:focusable="true"
+ android:paddingTop="12dp"
+ android:paddingBottom="12dp"
+ android:stateListAnimator="@null"
+ android:text="纭畾"
+ android:textColor="@android:color/white"
+ android:textSize="16sp"
+ android:textStyle="bold"
+ app:layout_constraintBaseline_toBaselineOf="@id/btnCancel"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_weight="1"
+ app:layout_constraintStart_toEndOf="@id/btnCancel" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/generallibrary/src/main/res/layout/fragment_card.xml b/generallibrary/src/main/res/layout/fragment_card.xml
index 338af60..fbc41d1 100644
--- a/generallibrary/src/main/res/layout/fragment_card.xml
+++ b/generallibrary/src/main/res/layout/fragment_card.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
@@ -12,7 +13,8 @@
android:layout_height="@dimen/dimen_title_height"
android:background="@color/title_bar_bg"
android:elevation="4dp"
- app:centerText="鍒跺崱" />
+ app:centerText="鍒跺崱"
+ tools:ignore="MissingConstraints" />
<ScrollView
android:layout_width="match_parent"
@@ -24,20 +26,20 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:padding="16dp">
+ android:padding="12dp">
<androidx.cardview.widget.CardView
android:id="@+id/home_newCard"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="16dp"
- android:layout_marginEnd="8dp"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="12dp"
+ android:layout_marginEnd="6dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
- app:cardCornerRadius="12dp"
- app:cardElevation="4dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="3dp"
app:layout_constraintEnd_toStartOf="@+id/home_redCard"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
@@ -47,21 +49,21 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:padding="16dp">
+ android:padding="12dp">
<ImageView
- android:layout_width="70dp"
- android:layout_height="70dp"
+ android:layout_width="55dp"
+ android:layout_height="55dp"
android:src="@drawable/home_add" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="6dp"
android:gravity="center"
android:text="寮�鍗�"
android:textColor="@color/text_selecter_color"
- android:textSize="@dimen/home_text_size" />
+ android:textSize="14sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
@@ -69,15 +71,15 @@
android:id="@+id/home_recharge"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="16dp"
- android:layout_marginEnd="8dp"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="12dp"
+ android:layout_marginEnd="6dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
android:visibility="gone"
- app:cardCornerRadius="12dp"
- app:cardElevation="4dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="3dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
@@ -87,21 +89,21 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:padding="16dp">
+ android:padding="12dp">
<ImageView
- android:layout_width="70dp"
- android:layout_height="70dp"
+ android:layout_width="55dp"
+ android:layout_height="55dp"
android:src="@drawable/home_recharge" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="6dp"
android:gravity="center"
android:text="鍏呭��"
android:textColor="@color/text_selecter_color"
- android:textSize="@dimen/home_text_size" />
+ android:textSize="14sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
@@ -109,14 +111,14 @@
android:id="@+id/home_redCard"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="16dp"
- android:layout_marginEnd="8dp"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="12dp"
+ android:layout_marginEnd="6dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
- app:cardCornerRadius="12dp"
- app:cardElevation="4dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="3dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/home_newCard"
app:layout_constraintTop_toTopOf="parent">
@@ -126,21 +128,21 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:padding="16dp">
+ android:padding="12dp">
<ImageView
- android:layout_width="70dp"
- android:layout_height="70dp"
+ android:layout_width="55dp"
+ android:layout_height="55dp"
android:src="@drawable/home_read" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="6dp"
android:gravity="center"
android:text="璇诲崱"
android:textColor="@color/text_selecter_color"
- android:textSize="@dimen/home_text_size" />
+ android:textSize="14sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
@@ -148,14 +150,14 @@
android:id="@+id/home_loss"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="24dp"
- android:layout_marginEnd="8dp"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="16dp"
+ android:layout_marginEnd="6dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
- app:cardCornerRadius="12dp"
- app:cardElevation="4dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="3dp"
app:layout_constraintEnd_toStartOf="@+id/home_replacement"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/home_newCard">
@@ -166,21 +168,21 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:padding="16dp">
+ android:padding="12dp">
<ImageView
- android:layout_width="70dp"
- android:layout_height="70dp"
+ android:layout_width="55dp"
+ android:layout_height="55dp"
android:src="@drawable/home_report" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="6dp"
android:gravity="center"
android:text="鎸傚け"
android:textColor="@color/text_selecter_color"
- android:textSize="@dimen/home_text_size" />
+ android:textSize="14sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
@@ -191,7 +193,7 @@
android:gravity="center"
android:text="瑙i櫎鎸傚け"
android:textColor="@color/text_selecter_color"
- android:textSize="@dimen/home_text_size"
+ android:textSize="14sp"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -200,14 +202,14 @@
android:id="@+id/home_replacement"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="24dp"
- android:layout_marginEnd="8dp"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="16dp"
+ android:layout_marginEnd="6dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
- app:cardCornerRadius="12dp"
- app:cardElevation="4dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="3dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/home_loss"
app:layout_constraintTop_toBottomOf="@+id/home_redCard">
@@ -217,21 +219,138 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:padding="16dp">
+ android:padding="12dp">
<ImageView
- android:layout_width="70dp"
- android:layout_height="70dp"
+ android:layout_width="55dp"
+ android:layout_height="55dp"
android:src="@drawable/home_replacement" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="6dp"
android:gravity="center"
android:text="琛ュ崱"
android:textColor="@color/text_selecter_color"
- android:textSize="@dimen/home_text_size" />
+ android:textSize="14sp" />
+ </LinearLayout>
+ </androidx.cardview.widget.CardView>
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/home_reverse"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="16dp"
+ android:layout_marginEnd="6dp"
+ android:clickable="true"
+ android:focusable="true"
+ android:foreground="?android:attr/selectableItemBackground"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="3dp"
+ app:layout_constraintEnd_toStartOf="@+id/home_deduction"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/home_replacement">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:padding="12dp">
+
+ <ImageView
+ android:layout_width="55dp"
+ android:layout_height="55dp"
+ android:src="@drawable/home_system" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="6dp"
+ android:gravity="center"
+ android:text="鍐叉"
+ android:textColor="@color/text_selecter_color"
+ android:textSize="14sp" />
+ </LinearLayout>
+ </androidx.cardview.widget.CardView>
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/home_deduction"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="16dp"
+ android:layout_marginEnd="6dp"
+ android:clickable="true"
+ android:focusable="true"
+ android:foreground="?android:attr/selectableItemBackground"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="3dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/home_reverse"
+ app:layout_constraintTop_toBottomOf="@+id/home_replacement">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:padding="12dp">
+
+ <ImageView
+ android:layout_width="55dp"
+ android:layout_height="55dp"
+ android:src="@drawable/home_system" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="6dp"
+ android:gravity="center"
+ android:text="琛ユ墸"
+ android:textColor="@color/text_selecter_color"
+ android:textSize="14sp" />
+ </LinearLayout>
+ </androidx.cardview.widget.CardView>
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/home_rewrite"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="16dp"
+ android:layout_marginEnd="6dp"
+ android:clickable="true"
+ android:focusable="true"
+ android:foreground="?android:attr/selectableItemBackground"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="3dp"
+ app:layout_constraintEnd_toStartOf="@+id/home_manage"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/home_reverse">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:padding="12dp">
+
+ <ImageView
+ android:layout_width="55dp"
+ android:layout_height="55dp"
+ android:src="@drawable/home_system" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="6dp"
+ android:gravity="center"
+ android:text="鍙嶅啓"
+ android:textColor="@color/text_selecter_color"
+ android:textSize="14sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
@@ -239,19 +358,19 @@
android:id="@+id/home_manage"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="24dp"
- android:layout_marginEnd="8dp"
- android:layout_marginBottom="16dp"
+ android:layout_marginStart="6dp"
+ android:layout_marginTop="16dp"
+ android:layout_marginEnd="6dp"
+ android:layout_marginBottom="12dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
- app:cardCornerRadius="12dp"
- app:cardElevation="4dp"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="3dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/home_loss"
+ app:layout_constraintStart_toEndOf="@+id/home_rewrite"
+ app:layout_constraintTop_toBottomOf="@+id/home_deduction"
app:layout_constraintVertical_bias="0.0">
<LinearLayout
@@ -259,75 +378,24 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:padding="16dp">
+ android:padding="12dp">
<ImageView
- android:layout_width="70dp"
- android:layout_height="70dp"
+ android:layout_width="55dp"
+ android:layout_height="55dp"
android:src="@drawable/home_system" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="6dp"
android:gravity="center"
android:text="鍒朵綔绠$悊鍗�"
android:textColor="@color/text_selecter_color"
- android:textSize="@dimen/home_text_size" />
+ android:textSize="14sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
- <TextView
- android:id="@+id/home_parameter"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:text="鍙傛暟璁剧疆"
- android:textColor="@color/text_selecter_color"
- android:textSize="@dimen/home_text_size"
- android:visibility="gone"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <androidx.cardview.widget.CardView
- android:id="@+id/home_my"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="24dp"
- android:layout_marginEnd="8dp"
- android:clickable="true"
- android:focusable="true"
- android:foreground="?android:attr/selectableItemBackground"
- android:visibility="gone"
- app:cardCornerRadius="12dp"
- app:cardElevation="4dp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/home_admin">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:orientation="vertical"
- android:padding="16dp">
-
- <ImageView
- android:layout_width="70dp"
- android:layout_height="70dp"
- android:src="@drawable/home_my" />
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
- android:gravity="center"
- android:text="涓汉涓績"
- android:textColor="@color/text_selecter_color"
- android:textSize="@dimen/home_text_size" />
- </LinearLayout>
- </androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/generallibrary/src/main/res/layout/item_card_list.xml b/generallibrary/src/main/res/layout/item_card_list.xml
index c470e47..8598844 100644
--- a/generallibrary/src/main/res/layout/item_card_list.xml
+++ b/generallibrary/src/main/res/layout/item_card_list.xml
@@ -24,7 +24,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:text="鍗″彿锛�5323281010060000"
+ android:text="鍗″彿锛�"
android:textColor="@color/black"
android:textSize="16sp"
android:textStyle="bold" />
@@ -33,51 +33,36 @@
android:id="@+id/tv_card_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="鐘舵�侊細姝e父"
+ android:text="鐘舵�侊細"
android:textColor="@color/green"
android:textSize="14sp" />
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
- android:orientation="horizontal">
-
- <TextView
- android:id="@+id/tv_card_type"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="鍗$被鍨嬶細鍐滄埛鍗�"
- android:textColor="@color/black"
- android:textSize="14sp" />
-
- <TextView
- android:id="@+id/tv_card_balance"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="浣欓锛�90.97 鍏�"
- android:textColor="@color/black"
- android:textSize="14sp"
- android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/tv_client_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
- android:text="濮撳悕锛氭潕鍥�"
+ android:layout_marginTop="4dp"
+ android:text="濮撳悕锛�"
android:textColor="@color/black"
android:textSize="14sp" />
+
+ <TextView
+ android:id="@+id/tv_card_type"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:text="鍗$被鍨嬶細"
+ android:textColor="@color/black"
+ android:textSize="14sp" />
+
<TextView
android:id="@+id/tv_client_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
- android:text="瀹㈡埛缂栧彿锛�281010060002"
+ android:text="瀹㈡埛缂栧彿锛�"
android:textColor="@color/black"
android:textSize="14sp" />
@@ -86,19 +71,36 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
- android:text="鐢佃瘽锛�156****4561"
+ android:text="鐢佃瘽锛�"
android:textColor="@color/black"
android:textSize="14sp" />
- <TextView
- android:id="@+id/tv_id_card"
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
- android:text="韬唤璇侊細3402****1245"
- android:textColor="@color/black"
- android:textSize="14sp"
- android:visibility="visible" />
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/tv_id_card"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+
+ android:layout_weight="1"
+ android:text="韬唤璇侊細"
+ android:textColor="@color/black"
+ android:textSize="14sp"
+ android:visibility="visible" />
+
+ <TextView
+ android:id="@+id/tv_card_balance"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="浣欓锛氬厓"
+ android:textColor="@color/black"
+ android:textSize="14sp"
+ android:textStyle="bold" />
+ </LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/generallibrary/src/main/res/layout/item_user_list.xml b/generallibrary/src/main/res/layout/item_user_list.xml
index f2e4eab..1fa1abb 100644
--- a/generallibrary/src/main/res/layout/item_user_list.xml
+++ b/generallibrary/src/main/res/layout/item_user_list.xml
@@ -62,14 +62,30 @@
android:textColor="#666666"
android:layout_marginBottom="4dp"/>
- <TextView
- android:id="@+id/tvAddress"
+ <LinearLayout
+ android:id="@+id/llAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:textSize="14sp"
- android:textColor="#666666"
+ android:orientation="horizontal"
android:layout_marginBottom="4dp"
- android:visibility="gone"/>
+ android:visibility="gone">
+
+ <TextView
+ android:id="@+id/tvAddressLabel"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鍦板潃锛�"
+ android:textSize="14sp"
+ android:textColor="#666666"/>
+
+ <TextView
+ android:id="@+id/tvAddressValue"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:textSize="14sp"
+ android:textColor="#666666"/>
+ </LinearLayout>
<TextView
android:id="@+id/tvOperateDate"
--
Gitblit v1.8.0