From e5d540d1a5e66bdf8210b7419af220a4bc2b0b9d Mon Sep 17 00:00:00 2001 From: Hermes Date: Mon, 20 Apr 2026 19:33:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(icon):=20=E7=A1=AE=E5=AE=9A=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E7=BB=95=E8=BF=87=20guardClick=20=E5=86=B7=E5=8D=B4?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E8=A2=AB=E5=85=B6=E4=BB=96=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E7=82=B9=E5=87=BB=E6=8B=A6=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - createSolidButton/createFlatButton 内部使用 guardClick('ui_btn') 共享同一个 key - 如果用户在短时间内点击了多个按钮(分类/翻页/关闭),确定按钮的点击可能被忽略 - 确定按钮现在直接创建 TextView + OnClickListener,不经 guardClick - 添加 try-catch 捕获 onSelect 回调异常 --- code/th_14_panels.js | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/code/th_14_panels.js b/code/th_14_panels.js index d7eff9f..e21fb7b 100644 --- a/code/th_14_panels.js +++ b/code/th_14_panels.js @@ -4016,11 +4016,27 @@ FloatBallAppWM.prototype.showShortXIconPickerPopup = function(opts) { selectNameTv.setPadding(self.dp(8), 0, 0, 0); selectRow.addView(selectNameTv); - var selectConfirm = self.ui.createSolidButton(self, "\u786e\u5b9a", C.primary, android.graphics.Color.WHITE, function() { - self.touchActivity(); - if (typeof onSelect === "function") onSelect(selectedName); - dismiss(); - }); + var selectConfirm = new android.widget.TextView(context); + selectConfirm.setText("\u786e\u5b9a"); + selectConfirm.setTextColor(android.graphics.Color.WHITE); + selectConfirm.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 14); + selectConfirm.setTypeface(null, android.graphics.Typeface.BOLD); + selectConfirm.setPadding(self.dp(16), self.dp(8), self.dp(16), self.dp(8)); + selectConfirm.setGravity(android.view.Gravity.CENTER); + var pressedColor = self.withAlpha(C.primary, 0.8); + selectConfirm.setBackground(self.ui.createRippleDrawable(C.primary, pressedColor, self.dp(24))); + try { selectConfirm.setElevation(self.dp(2)); } catch(e){} + selectConfirm.setOnClickListener(new android.view.View.OnClickListener({ + onClick: function(v) { + self.touchActivity(); + try { + if (typeof onSelect === "function") onSelect(selectedName); + } catch(eSelect) { + safeLog(self.L, 'e', "icon onSelect err=" + String(eSelect)); + } + dismiss(); + } + })); selectRow.addView(selectConfirm); card.addView(selectRow);