gpt4 book ai didi

android - 将回收器 View 滚动到顶部时分页

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:55 25 4
gpt4 key购买 nike

我需要在向上滚动 RecyclerView 时实现分页。我遇到了一些问题,因为在将内容添加到第 0 个位置并通知适配器时,recyclerview 会自动滚动到顶部。有没有办法禁用该行为?

        @Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
setFields(viewHolder, data);
if (position == 0 && getParentFragment().hasPrevious()) {
getParentFragment().callPreviousPage();
}
}

其中 setFields(viewHolder, data); 方法将值设置到不同的字段。

if (position == 0 && getParentFragment().hasPrevious()) {
getParentFragment().callPreviousPage();
}

上面的代码是当recycler view的position为0(分页)时调用web service。

public synchronized void setList(final List<TournamentsData> list) {
this.list.addAll(0, list);
notifyDataSetChanged();
}

以上是将网络服务获取的数据加载到适配器的方法。

非常感谢您。

最佳答案

适配器内的代码。请注意,粒度更新比调用 notifydataset changed 更好。 Reference

public void addlisttop(List<MyInformationClass> list)
{
for(int i=0;i<list.size();i++)
{
myinformation.add(i,list.get(i));
notifyItemInserted(i);
}
}

当列表到达零位置时添加项目的代码

 myRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
int itemno=myLayoutManager.findFirstVisibleItemPosition();
if(itemno==0)additems();
}
});

添加项目的代码

private void additems()
{
MyInformationClass myInformationClass=new MyInformationClass();
List<MyInformationClass> list=new ArrayList<>(10);
for(int i=0;i<10;i++)
{
myInformationClass=new MyInformationClass();
myInformationClass.maintext="BulkListItem"+ String.valueOf(number);
myInformationClass.subtext="subtext";
list.add(myInformationClass);
number=number+1;
}
myRecycleAdapter.addlisttop(list);
}

完整引用。请参阅 this

关于android - 将回收器 View 滚动到顶部时分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39558704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com