将RecyclerView项目更改为高于所有其他项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将RecyclerView项目更改为高于所有其他项目相关的知识,希望对你有一定的参考价值。

我有水平的recyclerView包含图像作为项目。如何检测RecycleView项目何时位于屏幕中央并强调它是这样的:

示例:

答案

您可以使用带有RecyclerView组合的轮播逻辑和SnapHelper兼容性类,如下所示:

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fadingEdge="horizontal"
    android:overScrollMode="never"
    android:requiresFadingEdge="horizontal" />

然后使用SnapHelper类附加recyclerView:

LinearSnapHelper snapHelper = new LinearSnapHelper();
snapHelper.attachToRecyclerView(recyclerView);

并提供当前所选中心项的逻辑:

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        if (newState == RecyclerView.SCROLL_STATE_IDLE) {
            float pos = (float) recyclerView.computeHorizontalScrollOffset() / (float) itemHeight;
            int itemPos = (int) Math.floor(pos);
        }
        super.onScrollStateChanged(recyclerView, newState);
    }
});

以上是关于将RecyclerView项目更改为高于所有其他项目的主要内容,如果未能解决你的问题,请参考以下文章

recyclerView 中的图像不响应使用滑动占位符将主题更改为暗模式

List.append() 将所有元素更改为附加项[重复]

将ListBox选择更改为切换选择的最佳方法

从其他片段添加新的 RecyclerView 项

将整数类型的所有主键更改为 bigint,包括引用

是否有可能当recyclerview加载项只加载一次而不重新加载滚动?