如何将HtmlWidget元素置于同一段落实现并排显示?
解决Flutter中两个HtmlWidget同段落并排显示的问题
方法1:合并HTML内容为单个HtmlWidget(推荐)
直接将两段HTML字符串拼接为一个整体,使用单个HtmlWidget渲染,内容会自然处于同一段落,无需额外布局调整:
HtmlWidget( '${allwordlist![0].ivakavakayagataki.toString()}${allwordlist![0].ivakavakayagataki.toString()}', )
若两段内容需要分隔(如空格),拼接时直接加入即可:
HtmlWidget( '${allwordlist![0].ivakavakayagataki.toString()} ${allwordlist![0].ivakavakayagataki.toString()}', )
方法2:用Row/Wrap组件包裹两个HtmlWidget
若必须保留独立的HtmlWidget,可使用Row组件横向排列,搭配Flexible处理文本溢出:
Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Flexible( child: HtmlWidget(allwordlist![0].ivakavakayagataki.toString()), ), Flexible( child: HtmlWidget(allwordlist![0].ivakavakayagataki.toString()), ), ], )
如果内容长度不确定,担心单行放不下,替换Row为Wrap组件实现自动换行:
Wrap( crossAxisAlignment: WrapCrossAlignment.start, children: [ HtmlWidget(allwordlist![0].ivakavakayagataki.toString()), HtmlWidget(allwordlist![0].ivakavakayagataki.toString()), ], )
方法3:设置HtmlWidget为行内元素
通过customStyleBuilder参数将渲染后的元素设为行内显示,再放在同一容器中:
// 第一个HtmlWidget HtmlWidget( allwordlist![0].ivakavakayagataki.toString(), customStyleBuilder: (_) => {'display': 'inline'}, ), // 第二个HtmlWidget做同样设置,直接相邻放置或用Row包裹 HtmlWidget( allwordlist![0].ivakavakayagataki.toString(), customStyleBuilder: (_) => {'display': 'inline'}, ),
内容的提问来源于stack exchange,提问作者Hames Rodrigues
相关产品推荐
相关产品推荐

