在 Android 上实施 "search within page"

Implementing "search within page" on Android

在我的应用程序中,我希望能够允许用户搜索可滚动 TextView 的内容,其中包含相当多的内容(本质上是一篇文章)。很像网络浏览器上的 "search in page" 功能,用户输入一个搜索词,每次点击搜索,他们就会跳转到该词的下一个匹配项。

该实现的第一个元素,即文章中搜索词的突出显示,很简单 - 只需设置一个带有找到该词的背景的跨度。我正在努力解决的问题是如何在用户按下 "search" 时滚动到这些匹配项中的每一个。我到处都看过,但似乎找不到其他人尝试过这个(但很高兴被证明是错误的!)所以非常感谢任何指导。

因此,总而言之:给定一个搜索词,我想滚动到该词的 TextView 中的每个匹配项。

是的,我设法找到了更好的方法。不要使用 TextView,而是使用禁用编辑的 EditText。你会知道匹配的索引,所以:

myEditText.setSelection(startIndex, startIndex + searchTermLength);

如果搜索词不可见,这会自动向下滚动到搜索词。