标题几乎解释了我的需要.我有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绘制到特定视图或位置.
你可以在https://github.com/bleeding182/recyclerviewItemDecorations看到一个更复杂的样本