gpt4 book ai didi

android - 以编程方式将单词滚动到 TextView 中的 View 中

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:29 29 4
gpt4 key购买 nike

我有一个包含大量文本的 TextView,用户搜索某些内容并突出显示匹配项,但它们可能位于页面下方,有没有办法滚动到第一个匹配项?

我翻遍了谷歌,似乎没有找到任何相关内容。

我的布局:

<ScrollView android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:requiresFadingEdge="vertical"
android:id="@+id/sclView">

<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtView"
android:textSize="16sp"
android:paddingTop="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:lineSpacingExtra="5dp"
android:textColor="@color/TextGray"
android:textIsSelectable="true"/>
</ScrollView>

最佳答案

我假设没有水平滚动。如果有,您可以从此答案推断。看到你在突出比赛,我也假设你已经找到了部分。这意味着您应该在 CharSequence 中至少有一个搜索字符串的起始位置。

使用Layout.getLineForOffset找到字符串所在的行,然后是 Layout.getLineTop得到行首的位置,然后View.scrollTo滚动到您想要的位置。它应该看起来像这样:

Layout layout = textView.getLayout();
scrollView.scrollTo(0, layout.getLineTop(layout.getLineForOffset(startPos)));

我还没有试过这个,所以你可能需要做一些事情来处理你添加的填充等,但我认为一般的想法应该可行。

关于android - 以编程方式将单词滚动到 TextView 中的 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21054528/

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