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