
基于原生能力实现图文混排
场景描述
应用中基于原生能力实现图文混排效果有多个方案可实现,推荐使用Flex作父容器实现的方案(方案一),此方案优点在于节点数量少,结构简单。
方案一:基于Flex作父容器实现图文混排
建议基于Flex容器作为父容器实现图文混排,优点在于减少节点数量。
内部头像使用Image组件,中间部分使用Text文本组件,右边使用Text文本组件。
核心代码
方案二:基于RelativeContainer相对布局实现图文混排效果
使用此方案RelativeContainer子组件要用alignRules布局组件位置,布局时需指定容器id。参与相对布局的容器内组件必须设置id,不设置id的组件组件不显示,容器id固定为__container__。
如以下核心代码中子组件都设置id,父容器未设置id时,父容器默认id固定为__container__。
核心代码
方案三:基于线性布局实现图文混排效果
基于线性布局实现图文混排时,节点数量会比较多。
核心代码
方案四:基于StyledString(属性字符串)实现图文混排效果
使用StyledString实现图文混排效果,首先得让Text组件与StyledString绑定,绑定后即可使用StyledString设置文本样式以及对文本进行增、删、改、查等操作。
StyledString是一个方便灵活应用文本样式的对象,Text组件可通过TextController中的setStyleString方法与属性字符串绑定。绑定之后即可通过StyledString对文本进行增、删、改、查等一系列操作,并且可以用StyledString设置文本样式。
注意:
1. 组件样式和属性字符串样式冲突时,属性字符串优先级高,冲突样式以属性字符串设置样式为准。
2. Text子组件样式与属性字符串样式冲突,以属性字符串为准。
3. 属性字符串对象不支持@State修饰。
核心代码
