Android 填充回收物每次查看一个项目,直到其完全被占用

Android 填充回收物每次查看一个项目,直到其完全被占用,android,android-recyclerview,Android,Android Recyclerview,我想在“回收者”视图中实现以下目标 ________________________ | item1 | | ________________________ | Call to Rest API to fetch more Item ▼ ________________________ | item1 | ite

我想在“回收者”视图中实现以下目标

________________________
|  item1               
|                      
|                      
________________________

       | Call to Rest API to fetch more Item
       ▼
________________________
|  item1               
|  item2               
|
________________________

       | Call to Rest API to fetch more Item
       ▼
________________________
|  item1               
|  item2               
|  item3
________________________
这是我的适配器设置

    private void setupOpenPost() {
      final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(ctx);
      linearLayoutManager.setReverseLayout(true);

      rvComments.setLayoutManager(linearLayoutManager);
      rvComments.setHasFixedSize(true);

      commentsAdapter = new CommentsAdapter(ctx,photoItem);
      commentsAdapter.fetchFirstItems();

      rvComments.setAdapter(commentsAdapter);
      rvComments.setOverScrollMode(View.OVER_SCROLL_NEVER);
    }
我想一次取一个项目来填充完整的可见回收器视图

最初,
fetchFirstItems()
用于填充第一项。我有一个类似的函数来获取更多信息

问题:如何实现这一点?实际启动对
fetchmoreItems()
的调用并添加项目的
触发器代码是什么

如何做到这一点?触发代码实际上是什么 是否启动对fetchmoreItems()的调用

当到达数据集中的最后一项时,您可以在
onBindViewHolder()
方法中调用
fetchmoreItems()
,exp:

 @Override
 public void onBindViewHolder(ViewHolder holder, int position) {

       if(position == mYourDataSet.size()-1){ // its the last item
           fetchmoreItems();
       }
 }
然后添加项目


这将获取我的数据集~1000中的所有项目,但我只需要填充可见的回收器视图(将~10)。之后,我将使用
OnScrollListener()
相应地获取更多项目。有什么建议吗?根据内容,每个项目可以有不同的高度。否则,硬编码数字会更容易。有没有办法找出RView相对于其父视图所占据的当前高度(在本例中为线性布局)?您可以获取RecyclerView的可见子视图,并计算总高度/实际高度。您可以使用LayoutManager的findFirstVisibleItemPosition()、findFirstCompletelyVisibleItemPosition()、findLastVisibleItemPosition()、findLastCompletelyVisibleItemPosition()。我应该在何处调用片段的
onCreateView()
?我在那里尝试过,但是在将适配器设置为RecyclerView(rvComments.setAdapter(commentsAdapter);)之后,它们都返回
-1
)。如果没有任何可见项,则返回-1。
mYourDataSet.add(newItem); // add the item to your dataset
mAdapter.notifyItemInserted(mYourDataSet.size()-1); // notify the adapter