From dde9027478b772dd60371937413ac2838c4f3bbd Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 11 二月 2025 09:56:33 +0800
Subject: [PATCH] 1.修改library名称 2.取水口接口相关代码
---
expand_button/src/main/java/com/example/expand_button/ExpandButton.kt | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/expand_button/src/main/java/com/example/expand_button/ExpandButton.kt b/expand_button/src/main/java/com/example/expand_button/ExpandButton.kt
index 1ac7b29..3671c76 100644
--- a/expand_button/src/main/java/com/example/expand_button/ExpandButton.kt
+++ b/expand_button/src/main/java/com/example/expand_button/ExpandButton.kt
@@ -86,6 +86,14 @@
// 娣诲姞涓�涓睘鎬у畾涔変笁瑙掑舰鍥炬爣鐨勭偣鍑诲尯鍩熸墿灞曡寖鍥�
private val triangleClickPadding: Float = 15f * context.resources.displayMetrics.density // 20dp
+ // 娣诲姞涓�涓爣璇嗙锛岀敤浜庡尯鍒嗕笉鍚岀殑 ExpandButton 瀹炰緥
+ private var buttonId: String = "default"
+
+ companion object {
+ private const val PREFS_NAME = "expand_button_prefs"
+ private const val KEY_LEGEND_STATES = "legend_states"
+ }
+
init {
// 淇濆瓨 XML 涓缃殑榛樿瀛椾綋澶у皬
defaultTextSize = textSize
@@ -485,6 +493,43 @@
}
/**
+ * 璁剧疆鎸夐挳鐨勫敮涓�鏍囪瘑绗�
+ * @param id 鏍囪瘑绗�
+ */
+ fun setButtonId(id: String) {
+ this.buttonId = id
+ // 鍔犺浇淇濆瓨鐨勭姸鎬�
+ loadStates()
+ }
+
+ /**
+ * 淇濆瓨鎵�鏈夊浘渚嬮」鐨勭姸鎬�
+ */
+ private fun saveStates() {
+ val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
+ val states = legendItems.map { it.isSelected }
+ prefs.edit().putString("${KEY_LEGEND_STATES}_$buttonId", states.joinToString(",")).apply()
+ }
+
+ /**
+ * 鍔犺浇淇濆瓨鐨勭姸鎬�
+ */
+ private fun loadStates() {
+ val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
+ val savedStates = prefs.getString("${KEY_LEGEND_STATES}_$buttonId", null)
+
+ if (savedStates != null && legendItems.isNotEmpty()) {
+ val states = savedStates.split(",").map { it.toBoolean() }
+ states.forEachIndexed { index, state ->
+ if (index < legendItems.size) {
+ legendItems[index].isSelected = state
+ }
+ }
+ invalidate()
+ }
+ }
+
+ /**
* 璁剧疆鍥句緥鍐呭
*/
@JvmName("setLegendsList")
@@ -494,6 +539,9 @@
unselectedIcon.setBounds(0, 0, iconSize, iconSize)
LegendItem(selectedIcon, unselectedIcon, description)
}
+
+ // 鍔犺浇淇濆瓨鐨勭姸鎬�
+ loadStates()
if (!isExpanded) {
text = collapsedText
@@ -587,6 +635,10 @@
index,
legendItems[index].isSelected
)
+
+ // 淇濆瓨鐘舵��
+ saveStates()
+
invalidate()
}
--
Gitblit v1.8.0