gpt4 book ai didi

android - 滚动到 RichText 内的 TextSpan

转载 作者:行者123 更新时间:2023-12-03 03:51:50 29 4
gpt4 key购买 nike

问题是我在可滚动小部件(SingleChildScrollView 或 ListView)中有一个 RichText,我需要滚动到 RichText 内的特定 TextSpan。另外,我不能使用 ScrollablePositionedList,因为文本应该写在最后一个文本的末尾,如果没有空间继续,文本应该转到下一行,所以我必须使用 RichText。
如同
示例代码:

ListView(
children:[
RichText(
children: AListOfTextSpansThatICreateWithIndexes(),
),
],
),
我要显示的示例文本:
This is TextSpan1 and it is a bit 
long. This is TextSpan2 and its ok.
类似于 Scrollable position of a TextSpan within a RichText

最佳答案

有一种方法可以使用 Scrollable.ensureVisible 方法确保键在屏幕上可见。 (感谢删除评论的人)
您应该首先为您的列表生成 key :

var keys = List.generate(LENGTH, (i) => GlobalKey());
然后使用每个 TextSpan 后面的键:
Text.rich(
TextSpan(
children: Iterable.generate(LENGTH, (i) => i)
.expand((i) => [
WidgetSpan(
child: SizedBox.fromSize(
size: Size.zero,
key: keys[i],
),
),
TextSpan(
text: 'this is text number $i',
),
])
.toList(),
),
),
最后,调用此函数(可以访问上下文)滚动到所需的键:
Scrollable.ensureVisible(
keys[i].currentContext,
alignment: 0.2,
duration: Duration(milliseconds: 500),
),

关于android - 滚动到 RichText 内的 TextSpan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62929904/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com