如何将字符串列表与自定义小部件连接起来

费萨尔

我有一个字符串列表和一个自定义无状态小部件,我想在每个字符串之后添加我的自定义小部件,并将它们全部显示为屏幕中的一个字符串。我想实现这样的目标。中间的数字应该是我的自定义小部件。

在此处输入图片说明

现在写我用我的代码得到这个结果。

在此处输入图片说明

代码:

 customArabicText(BuildContext context) {
   TextStyle textStyle = TextStyle(fontSize: 22);
   List<Widget> widgets = [];

for (var i = 0; i < responceOfFutureBuilder.data.length; i++) {
  number = arabicTextList[i].number.toString().toPersianDigit();
  //_calcLastLineEnd(context, arabicTextList[i].arabicText);
  final quranTextSize = calcTextSize(arabicTextList[i].arabicText, textStyle);

    widgets.add(
      SelectableText(
        
        quranTextSpecificSuraList[i].arabicText.replaceFirst(
            GetBismillah(
                quranTextArabic: quranTextSpecificSuraList[i].quranTextArabic,
                suraNumber: quranTextSpecificSuraList[i].suraNumber),
            ""),
        style: TextStyle(fontSize: 22),
        scrollPhysics: ClampingScrollPhysics(),
        enableInteractiveSelection: true,
        textWidthBasis: TextWidthBasis.parent,
      ),
    );


  widgets.add(MyCustomWidget(text: "$number"));

}
return Directionality(
  textDirection: TextDirection.rtl,
  child: Wrap(
    clipBehavior: Clip.antiAlias,
    crossAxisAlignment: WrapCrossAlignment.center,
    spacing: 5,
    children: widgets,
  ),
);

}

我的构建方法:

@override
 Widget build(BuildContext context) {

   return Container(
    child: customArabicText(context),
);

}

在这段代码中,我从服务器端收到一个字符串列表,在 for 循环的帮助下,我遍历列表中的每个元素,并使用我的自定义小部件将每个元素添加到另一个列表中,因此新列表如下所示。

[0]: string1
[1]: myCustomWidget
[2]: string2
[3]: myCustomWidget
[4]: string3
[5]: myCustomWidget
[6]: string4
[7]: myCustomWidget
[8]: string5

list 的 join() 方法将是完美的,但 join() 方法只接受字符串,我无法将我的自定义小部件传递给 Join() 方法。

我使用 Wrap 小部件实现了某种解决方案,但它并没有完全完成工作。我正在试验大约 3 只飞蛾,但我没有找到任何解决方案。如果有人可以帮助我,我将不胜感激。

耶欣谢赫

试试RichText这是一个演示:


  @override
  Widget build(BuildContext context, watch) {
  

    return Column(
      mainAxisAlignment: MainAxisAlignment.start,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        RichText(
          text: TextSpan(
            children: [
              TextSpan(
                text: "Main text",
                children: [
                  WidgetSpan(
                    child: SizedBox(
                      width: 40,
                      child: Icon(
                        Icons.book,
                        size: 42,
                        color: Colors.black38,
                      ),
                    ),
                  ),
                ],
              ),
              TextSpan(
                text: "Main2 text",
                children: [
                  WidgetSpan(
                    child: SizedBox(
                      width: 40,
                      child: Icon(
                        Icons.ac_unit,
                        size: 42,
                        color: Colors.black38,
                      ),
                    ),
                  ),
                ],
              ),
            ],
          ),
        ),
        Text("Next"),
        RichText(
          text: TextSpan(
            children: [
              TextSpan(
                text: "Main text",
                children: [
                  WidgetSpan(
                    child: SizedBox(
                      width: 40,
                      child: Icon(
                        Icons.book,
                        size: 42,
                        color: Colors.black38,
                      ),
                    ),
                  ),
                ],
              ),
              TextSpan(
                text: "Main2 text",
                children: [
                  WidgetSpan(
                    child: SizedBox(
                      width: 40,
                      child: Icon(
                        Icons.ac_unit,
                        size: 42,
                        color: Colors.black38,
                      ),
                    ),
                  ),
                ],
              ),
            ],
          ),
        ),
      ],
    );
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将字符串与列表项中的列表连接起来?

如何将随机字符中的字符串与列表连接起来?

将浮点列表与表中的字符串列表连接起来

Pandas:如何将 MultiIndex DataFrame 与单个索引 DataFrame 连接起来,以及自定义排序

Django模板:如何将命名URL和字符串连接起来?

是否可以将年份列和字符串列连接起来?

我在 kotlin 中有两个字符串列表,如何将第一个列表的每个元素与对应于位置的第二个列表的元素连接起来?

将字符串与范围连接起来

如何将Charles与IntelliJ连接起来?

如何将odoo与体式连接起来?

如何将 LSTM 与 Dense 连接起来?

如何将字符串元素的向量与字符分隔符连接起来?

如何将字符串与从ule子表达式返回的值连接起来?

如何将绑定属性与 WPF/XAML 中标签内容的字符串连接起来?

Vue.js 如何将字符串与 img src 中的方法连接起来

如何根据数量将java8中列表中的字符串元素连接起来?

如何将 lineEdit 与定义变量的函数连接起来?

如何将MOSS 2007列表与SSRS连接起来?

如何在for循环中将字符串与python中的列表连接起来

如何将数据框的行名称与特殊字符连接起来?

如何仅将字符串中的连续数字连接起来?

将自定义 cloudtrail 与自定义 eventbus 连接起来?

您如何在 Keras 中编译自定义损失函数,将预测与来自输入张量的信息连接起来?

将列表与 linq 中的表连接起来

VBA:如何将其连接起来

如何将一系列 str 列表与一系列 str 连接起来

如何将变量作为字符串的一部分连接起来(用于文件名)?

如何将“$”特殊字符与Mongodb中的另一个字段连接起来?

如何将 RichTextBox 中的选定行与特定字符连接起来并替换现有行?