【问题标题】:Android RecyclerView scroll to specific wordAndroid RecyclerView 滚动到特定单词
【发布时间】:2019-07-04 09:47:56
【问题描述】:
我想滚动到特定的字符串或文本索引。我得到搜索文本位置,我想滚动或关注屏幕中心到我在RecyclerView中的特定字符串
我尝试了很多方法但没有解决
现在我滚动到喜欢这个
LinearLayoutManager llm = (LinearLayoutManager) recyclerView.getLayoutManager();
llm.scrollToPositionWithOffset(row, position);
但它只滚动RecyclerView 的行。我需要滚动到特定的单词
有人能帮我吗。谢谢
【问题讨论】:
标签:
android
android-recyclerview
android-scrolling
【解决方案1】:
layoutmanager.scrollToPosition(位置);
或
recycler.getLayoutManager().scrollToPosition(position)
【解决方案2】:
创建一个方法来返回该 TextView 在适配器中的位置。对于这个例子,我创建了一个非常简单的 RecyclerView.Adapter,它只包含一个 List 项并正在寻找字符串“target”。
private int getTargetPosition(RecyclerView recycler) {
MyAdapter adapter = (MyAdapter) recycler.getAdapter();
for (int i = 0; i < adapter.items.size(); i++) {
if (adapter.items.get(i).equals("target")) {
return i;
}
}
throw new AssertionError("target is guaranteed to be in the list");
}
之后,就像调用scrollToPosition()一样简单:
int position = getTargetPosition(recycler);
recycler.scrollToPosition(position);