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