chenjun

全文右对齐

@@ -94,7 +94,8 @@ export struct PlayerTitleView { @@ -94,7 +94,8 @@ export struct PlayerTitleView {
94 } 94 }
95 clipStr += strArr[i] 95 clipStr += strArr[i]
96 } 96 }
97 - console.log(TAG, 'clipStr:', clipStr) 97 + clipStr += this.isOverLines ? '...' : '';
  98 + console.log(TAG, 'clipStr2:', clipStr)
98 return clipStr 99 return clipStr
99 } 100 }
100 101
@@ -130,7 +131,8 @@ export struct PlayerTitleView { @@ -130,7 +131,8 @@ export struct PlayerTitleView {
130 } 131 }
131 clipStr += strArr[i] 132 clipStr += strArr[i]
132 } 133 }
133 - console.log(TAG, 'clipTitleText clipStr:', clipStr) 134 + console.log(TAG, 'clipTitleText clipStr1:', clipStr)
  135 + clipStr += this.isTitleOverLines ? '...' : '';
134 return clipStr 136 return clipStr
135 } 137 }
136 138
@@ -217,7 +219,54 @@ export struct PlayerTitleView { @@ -217,7 +219,54 @@ export struct PlayerTitleView {
217 // }) 219 // })
218 // } 220 // }
219 // } else { 221 // } else {
220 - if (this.summary && this.titleLines < 4) { 222 + this.detailDesc()
  223 + // }
  224 + Text(DateTimeUtils.formatDate(new Date(this.contentDetailData?.publishTime).getTime(),
  225 + DateTimeUtils.PATTERN_DATE_TIME_HYPHEN_MM))
  226 + .fontSize(12)
  227 + .fontColor(Color.White)
  228 + .opacity(0.7)
  229 + .lineHeight(16)
  230 + .fontWeight(400)
  231 + .fontFamily('PingFang SC-Regular')
  232 + .margin({ top: 8, bottom: 8 })
  233 +
  234 + }
  235 + .width(this.windowWidth - 150 + 'px')
  236 + .padding({ left: 16, right: 22 })
  237 + .alignItems(HorizontalAlign.Start)
  238 + .visibility(this.isOpenDetail || this.isDragging ? Visibility.None : Visibility.Visible)
  239 + }
  240 +
  241 + @Builder
  242 + detailDesc() {
  243 + /**
  244 + * 标题大于三行或存在简介显示查看详情按钮
  245 + */
  246 + // if (this.rmhPlatform == 1) {
  247 + // if (this.titleHeight > 200 || this.summary) {
  248 + // Text('查看详情 > ')
  249 + // .padding({
  250 + // left: 6,
  251 + // right: 6,
  252 + // top: 4,
  253 + // bottom: 4
  254 + // })
  255 + // .borderRadius(2)
  256 + // .backgroundColor('#99636363')
  257 + // .fontFamily('PingFang SC-Regular')
  258 + // .fontColor(Color.White)
  259 + // .fontSize(12)
  260 + // .lineHeight(14)
  261 + // .fontWeight(400)
  262 + // .onClick(() => {
  263 + // this.isOpenDetail = true
  264 + // this.dialogController?.open()
  265 + // })
  266 + // }
  267 + // } else {
  268 + if (this.summary && this.titleLines < 4) {
  269 + Stack({ alignContent: Alignment.TopStart }) {
221 Text() { 270 Text() {
222 Span(this.clipText(this.summary, 14, this.summaryLines, this.windowWidth - 150 - vp2px(50))) 271 Span(this.clipText(this.summary, 14, this.summaryLines, this.windowWidth - 150 - vp2px(50)))
223 .fontSize(14) 272 .fontSize(14)
@@ -229,8 +278,17 @@ export struct PlayerTitleView { @@ -229,8 +278,17 @@ export struct PlayerTitleView {
229 this.isOpenDetail = true 278 this.isOpenDetail = true
230 this.dialogController?.open() 279 this.dialogController?.open()
231 }) 280 })
232 - if (this.isOverLines) {  
233 - Span('... 全文') 281 + }
  282 + // .position({ x: 0, y: 0 })
  283 + .padding({
  284 + left: 0,
  285 + right: 6,
  286 + top: 0,
  287 + bottom: 8
  288 + })
  289 + if (this.isOverLines) {
  290 + Text() {
  291 + Span('全文')
234 .fontColor('#888888') 292 .fontColor('#888888')
235 .fontWeight(400) 293 .fontWeight(400)
236 .fontFamily('PingFang SC-Regular') 294 .fontFamily('PingFang SC-Regular')
@@ -251,80 +309,94 @@ export struct PlayerTitleView { @@ -251,80 +309,94 @@ export struct PlayerTitleView {
251 this.isOpenDetail = true 309 this.isOpenDetail = true
252 this.dialogController?.open() 310 this.dialogController?.open()
253 }) 311 })
254 -  
255 } 312 }
  313 + .textAlign(TextAlign.Center)
  314 + // .width('100%')
  315 + .position({ x: '100%', y: this.summaryLines*23 }) //行高+margin
  316 + .translate({ x: '-100%', y: '-100%' })
  317 + // .markAnchor({ x: '100%', y: '100%' })
  318 + .padding({
  319 + left: 0,
  320 + right: 6,
  321 + top: 0,
  322 + bottom: 6
  323 + })
256 } 324 }
257 - .padding({  
258 - left: 0, //6  
259 - right: 6,  
260 - top: 0, //4  
261 - bottom: 8  
262 - })  
263 -  
264 } 325 }
265 - // }  
266 - Text(DateTimeUtils.formatDate(new Date(this.contentDetailData?.publishTime).getTime(),  
267 - DateTimeUtils.PATTERN_DATE_TIME_HYPHEN_MM))  
268 - .fontSize(12)  
269 - .fontColor(Color.White)  
270 - .opacity(0.7)  
271 - .lineHeight(16)  
272 - .fontWeight(400)  
273 - .fontFamily('PingFang SC-Regular')  
274 - .margin({ top: 8, bottom: 8 })  
275 - 326 + .width('100%')
276 } 327 }
277 - .width(this.windowWidth - 150 + 'px')  
278 - .padding({ left: 16, right: 22 })  
279 - .alignItems(HorizontalAlign.Start)  
280 - .visibility(this.isOpenDetail || this.isDragging ? Visibility.None : Visibility.Visible)  
281 } 328 }
282 329
  330 + /**
  331 + * 标题
  332 + * */
283 @Builder 333 @Builder
284 titleBuilder() { 334 titleBuilder() {
285 - Text() {  
286 - Span(this.clipTitleText(this.getTitle(), 16, 4, this.windowWidth - 234 - vp2px(50)))  
287 - .fontSize(16)  
288 - .fontColor(Color.White)  
289 - .lineHeight(22)  
290 - .fontWeight(600)  
291 - .fontFamily('PingFang SC-Regular')  
292 - if (this.isTitleOverLines) {  
293 - Span('... 全文') 335 + // Stack({ alignContent: this.isTitleOverLines ? Alignment.BottomEnd : Alignment.Start }) {
  336 + Stack({ alignContent: Alignment.TopStart }) {
  337 + Text() {
  338 + Span(this.clipTitleText(this.getTitle(), 16, 4, this.windowWidth - 234 - vp2px(50)))
  339 + .fontSize(16)
294 .fontColor(Color.White) 340 .fontColor(Color.White)
  341 + .lineHeight(22)
295 .fontWeight(600) 342 .fontWeight(600)
296 .fontFamily('PingFang SC-Regular') 343 .fontFamily('PingFang SC-Regular')
297 - .fontSize(12)  
298 - .onClick(() => {  
299 - this.isOpenDetail = true  
300 - this.dialogController?.open()  
301 - })  
302 - ImageSpan($r('app.media.comment_unfold_svg'))  
303 - .width(14)  
304 - .height(14)  
305 - .objectFit(ImageFit.Fill)  
306 - .verticalAlign(ImageSpanAlignment.BOTTOM)  
307 - .margin({ bottom: 1 })// .padding({  
308 - // bottom: 4  
309 - // })  
310 - .onClick(() => {  
311 - this.isOpenDetail = true  
312 - this.dialogController?.open()  
313 - })  
314 344
315 } 345 }
  346 + // .position({ x: 0, y: 0 })
  347 + .onAreaChange((oldArea: Area, newArea: Area) => {
  348 + //console.info(`cj2024 titleLines = ${newArea.height as number} line = ${(newArea.height as number) / 20}`)
  349 + this.titleLines = Math.floor((newArea.height as number) / 22) // 22是行高
  350 + //console.info(`cj2024 titleLines = ${this.titleLines}`)
  351 + this.updateSummaryLines()
  352 + })
  353 + .maxLines(4)
  354 + .textOverflow({ overflow: TextOverflow.Ellipsis })
  355 + .padding({
  356 + left: 0, //6
  357 + right: 6,
  358 + top: 0, //4
  359 + bottom: 8
  360 + })
  361 +
  362 + Text() {
  363 + if (this.isTitleOverLines) {
  364 + Span('全文')
  365 + .fontColor(Color.White)
  366 + .fontWeight(600)
  367 + .fontFamily('PingFang SC-Regular')
  368 + .fontSize(12)
  369 + .onClick(() => {
  370 + this.isOpenDetail = true
  371 + this.dialogController?.open()
  372 + })
  373 + ImageSpan($r('app.media.comment_unfold_svg'))
  374 + .width(14)
  375 + .height(14)
  376 + .objectFit(ImageFit.Fill)
  377 + .verticalAlign(ImageSpanAlignment.BOTTOM)
  378 + .margin({ bottom: 1 })// .padding({
  379 + // bottom: 4
  380 + // })
  381 + .onClick(() => {
  382 + this.isOpenDetail = true
  383 + this.dialogController?.open()
  384 + })
  385 + }
  386 + }
  387 + .textAlign(TextAlign.Center)
  388 + // .width('100%')
  389 + .position({ x: '100%', y: this.titleLines*23 }) //行高+margin
  390 + .translate({ x: '-100%', y: '-100%' })
  391 + // .position({ x: '100%', y: '100%' })
  392 + // .markAnchor({ x: '100%', y: '100%' })
  393 + .padding({
  394 + left: 0, //6
  395 + right: 6,
  396 + top: 0, //4
  397 + bottom: 8
  398 + })
316 } 399 }
317 - .onAreaChange((oldArea: Area, newArea: Area) => {  
318 - //console.info(`cj2024 titleLines = ${newArea.height as number} line = ${(newArea.height as number) / 20}`)  
319 - this.titleLines = Math.floor((newArea.height as number) / 22) // 22是行高  
320 - //console.info(`cj2024 titleLines = ${this.titleLines}`)  
321 - this.updateSummaryLines()  
322 - })  
323 - .padding({  
324 - left: 0, //6  
325 - right: 6,  
326 - top: 0, //4  
327 - bottom: 8  
328 - }) 400 + .width('100%')
329 } 401 }
330 } 402 }