0
您将如何根据他们在屏幕上的位置给水平RecyclerView中的物品垂直偏移?当用户向左或向右滚动时,我希望物体在靠近屏幕的两端时接近中间位置时降低。RecyclerView物品垂直填充取决于他们的位置
这是我要去的效果图。蓝色表示左右滚动。红色表示每个项目根据其在屏幕上的位置的垂直偏移量。当用户向左或向右滚动时,我希望他们根据位置平稳地上升和下降。
您将如何根据他们在屏幕上的位置给水平RecyclerView中的物品垂直偏移?当用户向左或向右滚动时,我希望物体在靠近屏幕的两端时接近中间位置时降低。RecyclerView物品垂直填充取决于他们的位置
这是我要去的效果图。蓝色表示左右滚动。红色表示每个项目根据其在屏幕上的位置的垂直偏移量。当用户向左或向右滚动时,我希望他们根据位置平稳地上升和下降。
你必须创建自定义ItemDecoration
,这看起来就像是这样的:
public class MyItemDecoration extends RecyclerView.ItemDecoration {
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
final int childCount = parent.getAdapter().getItemCount();
final int center = childCount >> 1;
final int currentPosition = parent.getChildAdapterPosition(view);
if (currentPosition < center) {
outRect.set(0, 0, 0, currentPosition * 10);
} else {
outRect.set(0, 0, 0, (childCount - currentPosition) * 10);
}
}
}
使用:
recyclerView.addItemDecoration(new MyItemDecoration());
结果:
非常好!它很棒!非常感谢你! – MarkInTheDark