From cbeeb55a8213773845fcc4d2a5eaaa0620628d88 Mon Sep 17 00:00:00 2001 From: laoyang Date: Thu, 5 Nov 2026 19:52:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A0=87=E9=A2=98=E6=94=B9?= =?UTF-8?q?=E7=94=A8=E5=8D=95=E8=A1=8C=E8=BE=93=E5=85=A5=E6=A1=86=20(#77)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户 2026-11-05:「现在这个任务标题是好几行的那种输入框,不要用这种输入框, 用一行的输入框就行了。标题没有那么长,现在太高了。」 TextArea(多行,height 84)→ TextInput(单行,height 40)。 ① 高度 84 → 40,与「截止」「负责人」那些控件行同高 标题是一句话,本来不需要多行;84 的高度等于多占两行位置, 把下面所有内容(状态/看板/截止…)整体往下推。 ② 顺带补 onSubmit:单行框里回车是"提交"而不是换行, 用户打完直接按回车就保存,不用先点别处。 多行框里回车是换行,所以以前不能加这一条。 ⚠️ TextInput 只有一行,高度超了也只是上下留白 ⇒ 直接给 40, 不是像 TextArea 那样"给多少显示多少"。 ⚠️ 单行框超长时不换行、横向滚动 —— 标题本来就没那么长,可接受。 编译通过,已装真机。 --- entry/src/main/ets/components/FbTaskPanel.ets | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/entry/src/main/ets/components/FbTaskPanel.ets b/entry/src/main/ets/components/FbTaskPanel.ets index 4713cfd..bf32c6f 100644 --- a/entry/src/main/ets/components/FbTaskPanel.ets +++ b/entry/src/main/ets/components/FbTaskPanel.ets @@ -1231,7 +1231,9 @@ export struct FbTaskPanel { * 任务标题这四个字用主题色,但是输入框里面的文字用黑色。」 * * 所以: - * · 不设 `titleEdit` 双态,直接把 TextArea 常驻;文字从 `titleOf()` 灌进去。 + * · 不设 `titleEdit` 双态,直接把输入框常驻;文字从 `titleOf()` 灌进去。 + * · #77p:用**单行 `TextInput`**(不是 TextArea)—— 标题就是一句话, + * 多行框把面板下半部分全推下去了。 * · **标签**(「任务标题」四个字)= 主题色粗体(走 fieldLb); * **框里的内容** = `FbColors.ink`(墨黑)。上一版我把内容也染成 accent, * 变成"整段标题都是红的",读起来像报错,也不符合"内容用墨色"。 @@ -1246,16 +1248,20 @@ export struct FbTaskPanel { titleRow() { Column({ space: 6 }) { this.fieldLb('任务标题') - /* 🔴🔴 #77o(用户 2026-11-05):「台式机采购计划这个任务标题的输入框 - 和其他的都不一样。我感觉没必要,字体什么的大小,和下面的备注还有 - 什么的保持一致就行了,没必要特别特殊。」 + /* 🔴🔴 #77p(用户 2026-11-05):「现在这个任务标题是好几行的那种输入框, + 不要用这种输入框,用一行的输入框就行了。标题没有那么长,现在太高了。」 - ⇒ 去掉 `fontSize(fontTitle=17)` + `Bold` + `height(64)`, - 改为与备注(以及截止/负责人那些控件行)**完全同一套**: - fontSize(fontSmall=13) / 不加粗 / height(84) 与备注一致 - 标题的"重要性"已经由它排在最前 + 标签主题色表达了, - 输入区不必再靠字号放大来强调。 */ - TextArea({ text: this.titleDraft, placeholder: '要做的事…' }) + ⇒ `TextArea`(多行,84 高)换成 **`TextInput`(单行,40 高)**, + 高度与「截止」「负责人」那些控件行对齐(它们是 height 40)。 + 标题是一句话,本来就不需要多行;多行框还占掉两倍高度, + 把下面所有内容都往下推。 + + ⚠️ `TextInput` 不支持 `.height(84)` 那种"给多少显示多少" —— + 它只有一行,高度超了也只是上下留白。所以这里直接给 40。 + ⚠️ 单行框**不会换行**,超长文字横向滚动。标题超过一行宽时 + 用户能看到正在打的部分,打完失焦后由 maxLines 之外的 + 省略处理在别处(列表卡片)表现,这里不需要额外处理。 */ + TextInput({ text: this.titleDraft, placeholder: '要做的事…' }) .placeholderColor(FbColors.faint) .placeholderFont({ size: FbMetric.fontSmall }) .fontSize(FbMetric.fontSmall) @@ -1264,8 +1270,8 @@ export struct FbTaskPanel { .backgroundColor(FbColors.inputBg) .borderRadius(FbMetric.radiusS) .width('100%') - .height(84) - .padding({ left: 12, right: 12, top: 10, bottom: 10 }) + .height(40) + .padding({ left: 12, right: 12 }) .onChange((v: string): void => { this.titleDraft = v; }) @@ -1278,6 +1284,11 @@ export struct FbTaskPanel { this.titleFocus = false; this.saveTitle(); }) + /* 单行框支持"回车提交":用户打完直接按回车就走 saveTitle, + 不用先点别处。多行框里回车是换行,所以以前没这一条。 */ + .onSubmit((): void => { + this.saveTitle(); + }) } .width('100%') .alignItems(HorizontalAlign.Start)