android – 具有多种视图类型的RecyclerView中的Parallax滚动标题

标题几乎解释了我的需要.我有RecyclerView和适配器与N量的视图类型.我已经尝试了3个不同的第三方库(例如
https://github.com/kanytu/android-parallax-recyclerview),它们应该支持视差标题视图.它们似乎都不起作用或者需要不适用于我的用例的自定义适配器.也许他们在内部玩视图类型.

是否有一些库可以支持适配器和视差滚动标题中的多种视图类型?

谢谢.

最佳答案 您可以使用ItemDecoration为特定项添加视差背景.这只是一些简单的代码,可以通过多种方式进行改进.

public class ParallaxHeaderDecoration extends RecyclerView.ItemDecoration {

    private Bitmap mImage;

    public ParallaxHeaderDecoration(final Context context, @DrawableRes int resId) {
        mImage = BitmapFactory.decodeResource(context.getResources(), resId);
    }

    @Override
    public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
        super.onDraw(c, parent, state);
        for (int i = 0; i < parent.getChildCount(); i++) {
            View view = parent.getChildAt(i);
            if (parent.getChildAdapterPosition(view) == 20) {
                int offset = view.getTop() / 3;
                c.drawBitmap(mImage, new Rect(0, offset, mImage.getWidth(), view.getHeight() + offset),
                        new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom()), null);
            }
        }

    }
}

通过项目装饰特征,您可以将bg绘制到特定视图或位置.

《android – 具有多种视图类型的RecyclerView中的Parallax滚动标题》

你可以在https://github.com/bleeding182/recyclerviewItemDecorations看到一个更复杂的样本

点赞