【发布时间】:2014-12-22 05:28:15
【问题描述】:
我想在加载活动后滚动到 RecyclerView 列表的底部。
GENERIC_MESSAGE_LIST = (ArrayList) intent.getExtras().getParcelableArrayList(ConversationsAdapter.EXTRA_MESSAGE);
conversationView = (RecyclerView) findViewById(R.id.list_messages);
conversationView.setHasFixedSize(true);
conversationViewLayoutManager = new LinearLayoutManager(this);
conversationView.setLayoutManager(conversationViewLayoutManager);
conversationViewAdapter = new ConversationAdapter(GENERIC_MESSAGE_LIST, this);
conversationView.setAdapter(conversationViewAdapter);
conversationView.scrollTo(...) 抛出 RecyclerView 不支持的异常,conversationView.scrollToPosition(...) 似乎没有做任何事情。
在上面的代码块之后,我添加了
conversationView.scrollToPosition(GENERIC_MESSAGE_LIST.size() + 1)
这是行不通的。 GENERIC_MESSAGE_LIST中有30个元素。
【问题讨论】:
-
您是在设置适配器后立即调用
scrollToPosition吗? -
@ianhanniballake 是的,就在
conversationView.setAdapter(conversationViewAdapter);之后。 -
这可能是因为您调用的是 +1 而不是 -1,所以第 5 个元素将是位置 [4],因为它从 0 开始。执行 +1 会给您一个 ArrayOutOfBounds ... 做到了不会在那里崩溃吗?
-
在setadapter之后添加 mRecyclerView.scrollToPosition(carsList.size()-1);
标签: java android scroll android-recyclerview