fix: restyle color picker action buttons

This commit is contained in:
7015725
2026-05-22 03:30:09 +08:00
parent 3069e4ec4d
commit 2cd1fdd660
3 changed files with 37 additions and 28 deletions

View File

@@ -5800,14 +5800,40 @@ FloatBallAppWM.prototype.showColorPickerPopup = function(opts) {
alphaValTv.setText(String(currentAlphaByte));
content.addView(alphaRow);
// 操作按钮
// 操作按钮:不用通用 Flat/Solid Button避免颜色面板里出现文字/背景适配异常。
function createColorPanelActionButton(label, primary, onClick) {
var b = new android.widget.TextView(context);
b.setText(label);
b.setGravity(android.view.Gravity.CENTER);
b.setSingleLine(true);
b.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 14);
b.setTypeface(null, android.graphics.Typeface.BOLD);
b.setPadding(self.dp(12), 0, self.dp(12), 0);
try { b.setIncludeFontPadding(false); } catch(eFontPad) {}
try { b.setMinHeight(self.dp(46)); } catch(eMinH) {}
if (primary) {
b.setTextColor(T.onPrimary || android.graphics.Color.WHITE);
try { b.setBackground(self.ui.createStrokeDrawable(T.primary, self.withAlpha(T.primaryDeep, isDark ? 0.38 : 0.20), self.dp(1), self.dp(23))); } catch(eBg1) {}
} else {
b.setTextColor(T.primaryDeep);
try { b.setBackground(self.ui.createStrokeDrawable(T.primarySoft, self.withAlpha(T.primaryDeep, isDark ? 0.34 : 0.24), self.dp(1), self.dp(23))); } catch(eBg2) {}
}
try { b.setClickable(true); b.setFocusable(true); } catch(eClickable) {}
b.setOnClickListener(new android.view.View.OnClickListener({
onClick: function(v) {
self.touchActivity();
try { if (onClick) onClick(v); } catch(eBtn) { safeLog(self.L, 'e', "color panel action err=" + String(eBtn)); }
}
}));
return b;
}
var actionRow = new android.widget.LinearLayout(context);
actionRow.setOrientation(android.widget.LinearLayout.HORIZONTAL);
actionRow.setGravity(android.view.Gravity.CENTER_VERTICAL);
actionRow.setPadding(self.dp(12), self.dp(8), self.dp(12), self.dp(8));
actionRow.setPadding(self.dp(12), self.dp(8), self.dp(12), self.dp(10));
var btnClear = self.ui.createFlatButton(self, "恢复默认", T.primaryDeep, function() {
self.touchActivity();
var btnClear = createColorPanelActionButton("恢复默认", false, function() {
isFollowTheme = true;
selectedColor = "";
updatePreview();
@@ -5819,21 +5845,12 @@ FloatBallAppWM.prototype.showColorPickerPopup = function(opts) {
alphaValTv.setText("255");
currentAlphaByte = 255;
});
try {
btnClear.setGravity(android.view.Gravity.CENTER);
btnClear.setSingleLine(true);
btnClear.setMinHeight(self.dp(44));
btnClear.setClickable(true);
} catch(eClearStyle) { safeLog(self.L, 'w', "color clear style fail: " + String(eClearStyle)); }
var clearLp = new android.widget.LinearLayout.LayoutParams(0, self.dp(44));
var clearLp = new android.widget.LinearLayout.LayoutParams(0, self.dp(46));
clearLp.weight = 1;
clearLp.setMargins(0, 0, self.dp(6), 0);
actionRow.addView(btnClear, clearLp);
var okTextColor = T.onPrimary;
try { if (okTextColor === undefined || okTextColor === null) okTextColor = android.graphics.Color.WHITE; } catch(eOkText) { okTextColor = android.graphics.Color.WHITE; }
var btnOk = self.ui.createSolidButton(self, "保存颜色", T.primary, okTextColor, function() {
self.touchActivity();
var btnOk = createColorPanelActionButton("保存颜色", true, function() {
try {
var finalColor = isFollowTheme ? "" : String(selectedColor || "");
if (!isFollowTheme && selectedColor) {
@@ -5849,15 +5866,7 @@ FloatBallAppWM.prototype.showColorPickerPopup = function(opts) {
}
closePopup();
});
try {
btnOk.setText("保存颜色");
btnOk.setTextColor(okTextColor);
btnOk.setGravity(android.view.Gravity.CENTER);
btnOk.setMinHeight(self.dp(42));
btnOk.setSingleLine(true);
btnOk.setClickable(true);
} catch(eOkStyle) { safeLog(self.L, 'w', "color ok style fail: " + String(eOkStyle)); }
var okLp = new android.widget.LinearLayout.LayoutParams(0, self.dp(44));
var okLp = new android.widget.LinearLayout.LayoutParams(0, self.dp(46));
okLp.weight = 1;
okLp.setMargins(self.dp(6), 0, 0, 0);
actionRow.addView(btnOk, okLp);

View File

@@ -54,8 +54,8 @@
"size": 21198
},
"th_14_panels.js": {
"sha256": "3db4a2776f41fe19d2947d20514d4de0fda5499daaa90904fbda59cadd76a90c",
"size": 291603
"sha256": "74292e7fba694962e009b516111714d2b4be46c5784504efbfee6e9f5624cb14",
"size": 292190
},
"th_15_extra.js": {
"sha256": "11a9866ba156c2a7862633530eb0d796a9955698a0c3fad4199dcccd4bb27c47",
@@ -68,5 +68,5 @@
},
"keyId": "toolhub-targets-2026-rsa3072",
"schema": 2,
"version": 20260521192648
"version": 20260521193003
}

View File

@@ -1 +1 @@
EuGsaFlEhooYTpjskZyjcwMZHfWCWss7lmXVQAws/2JfV4nK4DRwISkgWAwKCcPzV+vkrupMcMFNLCfFczF8xpbz5qHUE+i9cJkVkJNGZcN71a1XOcNVKp1hwg5VXoDXofqj5KOS0Ir+iEKlNzQG8S4afriGd5de5LiST5TrJfIKlMP8xc1JfYFEDnHi5Ia2C6U9WTujV9YBxOyENXAvcTA8ZJuSeFM4B/D+a1wQdH6ZD2WgcYl2kb4EalnNk/MxzIUcn5O+ek+0hejV4SANPvi4s6QQHYZijScP0jU0o8mJIsC1Be2gxWjwbljU0pL/R7PmAJaq1P9ucKJBJdeggaCq2MeBWHLCsAXUUK3TzIrKS5TLR4c/e+mjmyijhWTBIQvQiu+Ii38xqFK0/NgICFt9Wp/9AOXpRsqaD+BTXaN4BKukBDKq1riShx/bwOuWnkX5rEXF6iuLZGmOips9A36IcWoI8n8YpP34c4DcurQu5K4DDzIHxBLYmKHJvSBe
PXxCENnwPa9E439nekyIgwoQ+81vCMYSXagiCxpmN9KlpFOpFrtbB4NYX+COQvv/QeKZb8nlhxIpxVkCSub+7C7Qgzt6rEeWCOKz6FOjhNrGzTXwtO9wFGq+GnjPBhULRZXOwmEZtUnRfchF0nADfydtBGCnBZ69dqMBkS6MsMNTQltQsPnpCDF3RKqud1XxgA4lntVsCthVjnyRjZ73lS3UdUpaJiFho+H3ijn9HxgmNqYDDPhAEYJhhJlDQWHKL+WH3N5mkkQa0Kx1BSHkmurakt6qVnaxEb7fxVxv7sH6R1hHqFTDQ/JywRzMX49wDYtTrqdiriy77czwaJ6geO2/x1N/zJ1ifhDWgzubqXEiPCayusetkG7UR+c9CUXt1/ACeYcR2psA6SBw4gQ9Y7JwC0aUBwAyz//RUV8Rwfrk3z4KC3xq+9ObZg7TqF6kwKNf3z8rX/d1v05Hca5laSXjsfS4Qeb062thq4Dksd5ELz2C2uH+RjNuIDx41e5I