RecyclerView水平滚动卡扣在中心

我正在尝试使用RecyclerView在这里制作类似旋转木马的视图,我希望项目在滚动时在屏幕中间捕捉,一次一个项目。我试过用了recyclerView.setScrollingTouchSlop(RecyclerView.TOUCH_SLOP_PAGING);


但是视图仍然滚动顺畅,我也尝试使用滚动侦听器来实现我自己的逻辑,如下所示:


recyclerView.setOnScrollListener(new OnScrollListener() {

                @Override

                public void onScrollStateChanged(RecyclerView recyclerView, int newState) {

                    super.onScrollStateChanged(recyclerView, newState);

                    Log.v("Offset ", recyclerView.getWidth() + "");

                    if (newState == 0) {

                        try {

                               recyclerView.smoothScrollToPosition(layoutManager.findLastVisibleItemPosition());

                                recyclerView.scrollBy(20,0);

                            if (layoutManager.findLastVisibleItemPosition() >= recyclerView.getAdapter().getItemCount() - 1) {

                                Beam refresh = new Beam();

                                refresh.execute(createUrl());

                            }

                        } catch (Exception e) {

                            e.printStackTrace();

                        }

                    }

从右到左的滑动现在工作正常,但不是相反,我在这里缺少什么?


森林海
浏览 1156回答 3
3回答

杨__羊羊

如果目标是使RecyclerView模仿行为ViewPager有相当简单的方法RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);SnapHelper snapHelper = new PagerSnapHelper();recyclerView.setLayoutManager(layoutManager);snapHelper.attachToRecyclerView(mRecyclerView);通过使用PagerSnapHelper你可以得到像这样的行为ViewPager
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android