Android 多个RecyclerViews和适配器数据偏移量

Android 多个RecyclerViews和适配器数据偏移量,android,android-recyclerview,Android,Android Recyclerview,我有多个使用common RecyclerView.Adapter的RecyclerView。有没有办法告诉RecyclerView使用某个偏移量从适配器获取数据?类似于第一视图从适配器获取0-15个项目,第二视图获取15-30个项目等等。您的意思是 编辑: 试试这个。 在所需位置为筛选数据创建单独的数据结构 private List<Object> data; private List<Object> dataToShow; public CustomAdapter(L

我有多个使用common RecyclerView.Adapter的RecyclerView。有没有办法告诉RecyclerView使用某个偏移量从适配器获取数据?类似于第一视图从适配器获取0-15个项目,第二视图获取15-30个项目等等。

您的意思是

编辑: 试试这个。 在所需位置为筛选数据创建单独的数据结构

private List<Object> data;
private List<Object> dataToShow;
public CustomAdapter(List<Object> data){
     this.data = data;
     this.dataToShow = new ArrayList<>(data);
}

这应该有效

在FragmentStatePagerAdapter上为viewpager中的片段提供位置和对象列表:

 @Override
        public Fragment getItem(int position) {
            return YourFragment.newInstance(position,yourListOfObjects);
        }
然后在YourFragment中,根据位置从列表中选取15项,制作一个Adpeter,例如RxJava,但您可以修改它,以使用常规Java:

int positionOfFragment;
        List<Product> list;
        Observable
                .just(list)
                .take(positionOfFragment*15)
                .subscribe(new Action1<List<Product>>() {
                    @Override
                    public void call(List<Product> orders) {
                        ProductAdapter adapter = new ProductAdapter(orders, getActivity());
                        //setAdapter to RecyclerView;
                    }
                });
intpositionoffragment;
名单;
可观察
.just(列表)
.取下(碎片位置*15)
.订阅(新操作1(){
@凌驾
公共作废通知(列出订单){
ProductAdapter=新的ProductAdapter(订单,getActivity());
//将适配器设置为RecyclerView;
}
});

否。我有多页的ViewPager,其中每页包含固定项目数的RecyclerView。所有RecyclerViews都有相同的适配器,但根据页面的不同,应该显示从某个位置开始的项目。所以第一页的recyclerview显示了前15个项目,第二页的recyclerview显示了接下来的15个项目,以此类推,但第二个解决方案在我的情况下不起作用。不同的recyclerviews可以在不同的时间甚至在同一时间从适配器请求数据,但是您的适配器实现期望视图一个接一个地请求数据。谢谢,我已经为每个页面实现了类似的功能,使用单独的适配器。我想也许有更优雅的方式来处理这种情况。@AndreiLapshin我不认为还有其他方式,那更优雅。这个解决方案真的没有错。
 @Override
        public Fragment getItem(int position) {
            return YourFragment.newInstance(position,yourListOfObjects);
        }
int positionOfFragment;
        List<Product> list;
        Observable
                .just(list)
                .take(positionOfFragment*15)
                .subscribe(new Action1<List<Product>>() {
                    @Override
                    public void call(List<Product> orders) {
                        ProductAdapter adapter = new ProductAdapter(orders, getActivity());
                        //setAdapter to RecyclerView;
                    }
                });