android-以编程方式将单词滚动到textview的视图中

android-以编程方式将单词滚动到textview的视图中,第1张

概述我的TextView包含大量文本,用户搜索了一些内容,然后突出显示了匹配项,但是它们可能在页面的下方,有没有办法滚动到第一个匹配项?我在google各处搜寻,似乎没有找到任何相关内容.我的版面:<ScrollViewandroid:layout_width="match_parent"android:layout_height="0dp

我的TextVIEw包含大量文本,用户搜索了一些内容,然后突出显示了匹配项,但是它们可能在页面的下方,有没有办法滚动到第一个匹配项?

我在Google各处搜寻,似乎没有找到任何相关内容.

我的版面:

<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的视图中全部内容,希望文章能够帮你解决android-以编程方式将单词滚动到textview的视图中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1088081.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存