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);