fix(icon): 确定按钮绕过 guardClick 冷却,避免被其他按钮点击拦截
- createSolidButton/createFlatButton 内部使用 guardClick('ui_btn') 共享同一个 key
- 如果用户在短时间内点击了多个按钮(分类/翻页/关闭),确定按钮的点击可能被忽略
- 确定按钮现在直接创建 TextView + OnClickListener,不经 guardClick
- 添加 try-catch 捕获 onSelect 回调异常
This commit is contained in:
@@ -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() {
|
||||
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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user