Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:滚动到RecyclerView中的最后一项_Android_Android Fragments_Android Recyclerview_Scrollbar - Fatal编程技术网

Android:滚动到RecyclerView中的最后一项

Android:滚动到RecyclerView中的最后一项,android,android-fragments,android-recyclerview,scrollbar,Android,Android Fragments,Android Recyclerview,Scrollbar,我知道有一些关于我试图解决的问题的讨论。到目前为止,我发现了一对:和 这些建议在某种程度上对我起了作用,但不幸的是并没有解决我的整个问题。让我详细说明: 简单地说,我有一个项目列表,我把它放在一个RecyclerView中,我想在单击顶部菜单栏上的一个按钮后滚动到某个项目。简单来说,我现在只想在点击时滚动到最后一项 我试图在检索对RecyclerView的引用后正确地放置代码,如下所示(listView是一个RecyclerView): 这起作用了。但是,如果我尝试执行以下操作,它没有执行,请注

我知道有一些关于我试图解决的问题的讨论。到目前为止,我发现了一对:和

这些建议在某种程度上对我起了作用,但不幸的是并没有解决我的整个问题。让我详细说明:

简单地说,我有一个项目列表,我把它放在一个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);