android - 一次刷一个项目 Recyclerview

标签 android android-fragments android-viewpager android-recyclerview

我尝试为回收站 View 添加滚动监听器并制定了一些逻辑,但我无法一次滑动一项。我在互联网上进行了一些搜索,但我得到了一些具有自定义回收器 View 的第三方库。我们可以在回收站 View 中一次实现一项滑动吗?如果是请告诉如何? 像这样一次滑动一项 image .

最佳答案

这软化了项目之间的移动:

public class SnapHelperOneByOne extends LinearSnapHelper {

    @Override
    public int findTargetSnapPosition(RecyclerView.LayoutManager layoutManager, int velocityX, int velocityY) {

        if (!(layoutManager instanceof RecyclerView.SmoothScroller.ScrollVectorProvider)) {
            return RecyclerView.NO_POSITION;
        }

        final View currentView = findSnapView(layoutManager);

        if (currentView == null) {
            return RecyclerView.NO_POSITION;
        }

        LinearLayoutManager myLayoutManager = (LinearLayoutManager) layoutManager;

        int position1 = myLayoutManager.findFirstVisibleItemPosition();
        int position2 = myLayoutManager.findLastVisibleItemPosition();

        int currentPosition = layoutManager.getPosition(currentView);

        if (velocityX > 400) {
            currentPosition = position2;
        } else if (velocityX < 400) {
            currentPosition = position1;
        }

        if (currentPosition == RecyclerView.NO_POSITION) {
            return RecyclerView.NO_POSITION;
        }

        return currentPosition;
    }
}

例子:

LinearSnapHelper linearSnapHelper = new SnapHelperOneByOne();
linearSnapHelper.attachToRecyclerView(recyclerView);

关于android - 一次刷一个项目 Recyclerview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32324926/

相关文章:

Android - 双击WebView检测

java - Android - 如何使用字符串地址而不是地点 ID 获取 Google Places 数据?

java - 如何在 viewpager 中的 View 之间保存按钮按下的状态和值?

android - 如何在viewpager fragment 内的recyclerview中添加swipelayout?

android - 如何在非 Activity 类中获取设备 imei 号码?

android - SwipeRefreshLayout 出错,无法在第一时间刷新(加载更多)

android - 启用主页按钮 ActionbarSherlock, Sherlockfragment

android - 无论如何交换或重新排序 fragment BackStack 条目?

java - 删除另一个 fragment Activity 中的 fragment

Android ViewPager 像笔记本一样滑动页面更改