HarmonyOS 鸿蒙Next List流中,两个item中间,有一条线。【解决】

HarmonyOS 鸿蒙Next List流中,两个item中间,有一条线。【解决】 cke_156.png

开发feed流时,遇到个问题,两个卡片中间,莫名其妙有一条灰色的线。 页面底色是灰色,两个卡片是白色。所以猜测是因为高度乘以idensity出现小数引发的问题,导致中间留空了。

解决方案

.pixelRound({ top: PixelRoundCalcPolicy.FORCE_CEIL, bottom: PixelRoundCalcPolicy.FORCE_CEIL })

计算高度时,向上取整。解决此问题。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-pixelroundforcomponent#pixelround


更多关于HarmonyOS 鸿蒙Next List流中,两个item中间,有一条线。【解决】的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS Next中,List项间默认存在分割线。将List的divider属性设置为new Divider(),并设置其lineWidth0,或直接设置divider = null即可消除线条。

更多关于HarmonyOS 鸿蒙Next List流中,两个item中间,有一条线。【解决】的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在流式布局中,两个白色卡片之间出现灰色细线,通常是由于组件高度或间距经过系统缩放(vppx 时乘以屏幕密度)后产生小数像素,导致实际像素值向下取整,使得相邻背景之间露出一行灰色背景像素。

使用 .pixelRound() 属性即可解决,让组件边缘的像素取整策略强制向上取整:

// 对列表项或卡片组件应用
.pixelRound({
  top: PixelRoundCalcPolicy.FORCE_CEIL,
  bottom: PixelRoundCalcPolicy.FORCE_CEIL
})

这样在计算组件顶部和底部边界像素时,会采用 Math.ceil 向上取整,消除因小数截断产生的缝隙。该属性不影响布局计算,只改变最终的像素对齐方式,是处理此类渲染缝隙的确定性方案。

回到顶部