代码之家  ›  专栏  ›  技术社区  ›  Tamir Abutbul AVK

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

  •  0
  • Tamir Abutbul AVK  · 技术社区  · 6 年前

    我有一个包含图像的水平回收视图。 如何检测屏幕中央是否有可回收视图项目,并将其强调为以下内容:

    例子:

    example

    1 回复  |  直到 6 年前
        1
  •  1
  •   jantursky    6 年前

    您可以将carousel逻辑与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" />
    

    然后将recyclerview附加到snaphelper类:

    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);
        }
    });