HarmonyOS RNOH Text组件设置了lineHeight文字不居中?

<Text
numberOfLines={1}
style={{
  maxWidth: 60,
  textAlign: 'center',
  color: '#262626',
  fontSize: 14,
  lineHeight: 30,
  backgroundColor: 'red',
}}>
{'定位中'}
</Text>

设置了lineHeight,文字不在中间在偏下位置,设置了textAlignVertical: 'center'也不管用。

阅读 577
1 个回答

text组件的height和lineHeight设置的是Text本身的属性,若是设置文本相对于文本框的位置可以使用lineHeight配合padding实现垂直居中。若是设置文本框相对于父组件的垂直居中,可以通过.justifyContent(FlexAlign.Center)设置父组件中子元素主轴上居中,通过.alignItems(HorizontalAlign.Center)/.alignItems(VerticalAlign.Center)设置纵向/横向布局父组件中子元素在交叉轴上居中。或者在module.json5的module中添加:

"metadata": [{
  "name": "half_leading",
  "value": "true"
}],

值得注意的是,该方法谨慎使用,因为是对当前hap整体生效的,可能会影响其他的已经开发好的Text显示。例如如果其他Text使用lineHeight和padding已经调整了居中,但是又设置了这个属性,会导致原来已经居中的不再居中。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进