Android:滚动到RecyclerView中的最后一项
我知道有一些关于我试图解决的问题的讨论。到目前为止,我发现了一对:和 这些建议在某种程度上对我起了作用,但不幸的是并没有解决我的整个问题。让我详细说明: 简单地说,我有一个项目列表,我把它放在一个RecyclerView中,我想在单击顶部菜单栏上的一个按钮后滚动到某个项目。简单来说,我现在只想在点击时滚动到最后一项 我试图在检索对RecyclerView的引用后正确地放置代码,如下所示(listView是一个RecyclerView): 这起作用了。但是,如果我尝试执行以下操作,它没有执行,请注意下面的评论:Android:滚动到RecyclerView中的最后一项,android,android-fragments,android-recyclerview,scrollbar,Android,Android Fragments,Android Recyclerview,Scrollbar,我知道有一些关于我试图解决的问题的讨论。到目前为止,我发现了一对:和 这些建议在某种程度上对我起了作用,但不幸的是并没有解决我的整个问题。让我详细说明: 简单地说,我有一个项目列表,我把它放在一个RecyclerView中,我想在单击顶部菜单栏上的一个按钮后滚动到某个项目。简单来说,我现在只想在点击时滚动到最后一项 我试图在检索对RecyclerView的引用后正确地放置代码,如下所示(listView是一个RecyclerView): 这起作用了。但是,如果我尝试执行以下操作,它没有执行,请注
//enter this block when the menu item was clicked
public boolean onOptionsItemSelected(MenuItem item) {
//mPagerAdapter is a reference to a FragmentStatePagerAdapter extended class
mPagerAdapter.highlightPosition(list.size()-1);
}
//selSchedListFragment is a reference to a Fragment extended class
public void highlightPosition(int pos){
selSchedListFragment.highlightPosition(pos);
};
Fragment类中定义了highlightPosition的方式:
public void highlightPosition(int pos) {
//listView.getLayoutManager().scrollToPosition(pos);
listView.smoothScrollToPosition(pos);
//listView.scrollToPosition(pos);
//LinearLayoutManager llm = (LinearLayoutManager) listView.getLayoutManager();
//llm.scrollToPositionWithOffset(pos , 29);
}
你会注意到,我在highlightPosition的核心功能中尝试了一些技巧,但都没有奏效
一定有什么东西不见了,有人能建议一下吗
在OnOptions ItemSelected方法中
要在listview中滚动,可以使用本机函数 对于直接滚动:
getListView().setSelection(21);
要获得平滑滚动,请执行以下操作:
listview.smoothScrollToPosition(21);
这对我来说可以将“回收器”视图焦点移到最后一行
您应该获得适配器计数,并将其设置为滚动到回收器视图,它将按预期工作。
getListView().setSelection(21);
listview.smoothScrollToPosition(21);
mRecyclerView.getLayoutManager().smoothScrollToPosition(mRecyclerView,null, finalCustomItems.size()-1);