在我的应用程序中,如果intent指定在那里滚动,我想滚动到RecyclerView中的特定TextView。最初的实现包括查看listView,查看其中的每个项目,直到找到与预期的TextView字符串匹配的字符串。我不知道如何为RecyclerView复制这个。我得到的最接近的是查看PreferenceGroupAdapter,但它似乎是一个受限制的类。
答案 0 :(得分:2)
创建一个方法,返回适配器中TextView
的位置。对于此示例,我创建了一个非常简单的RecyclerView.Adapter
,只保留List<String> items
并正在查找字符串"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);