如何在RecyclerView中设置水平滚动以显示下一个和上一个数据

时间:2018-11-11 05:42:10

标签: android android-layout android-recyclerview

在我的应用程序中,我想使用recyclerView来显示特殊数据,为此,我要使用recyclerview水平并滚动显示 next 上一个数据。
例如横幅图像下面:enter link description here

我该如何使用LayoutManager

为此,我知道我应该在LinearLayout中使用 Horizo​​ntal 。但我不知道如何显示下一个和上一个数据

请不要给我负面点,请帮助我。

1 个答案:

答案 0 :(得分:1)

假设您一次只需要显示一个完整项目,而在两侧则只显示2个部分项目。您可以使用snaphelper将recylerview捕捉到最近的项目位置,以获得所需的效果。然后按照以下方式在“回收者”视图中更改商品的宽度。您需要在适配器内部传递recyclerView引用以获取宽度。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = findViewById(R.id.recyclerView);
    recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
    final SnapHelper snapHelper = new PagerSnapHelper();
    snapHelper.attachToRecyclerView(recyclerView);
}

并在您的onCreateViewHolder中更改项目的宽度。

public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int i) {
    final View view =
            LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.your_view, parent, false);
    // recyclerView is your passed view.
    int width = recyclerView.getWidth();
    ViewGroup.LayoutParams params = view.getLayoutParams();
    params.width = (int)(width * 0.8);
    view.setLayoutParams(params);
    return new YourViewHolder(view);
}