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

Android 如何在RecyclerView中设置水平滚动显示下一个和上一个数据,android,android-layout,android-recyclerview,Android,Android Layout,Android Recyclerview,在我的应用程序中,我希望使用recyclerView来显示特殊数据,为此,我希望使用recyclerView和水平滚动显示下一个和上一个数据。 例如横幅和图像下方: 如何使用LayoutManager进行此操作 为此,我知道我应该在LinearLayout中使用Horizontal。但我不知道如何显示下一个和上一个数据 请不要给我负面评价,请帮助我。假设您一次只需要显示一个完整项目,两侧各显示两个部分项目。您可以使用snaphelper将recylerview捕捉到最近的项目位置,以达到所需的效

在我的应用程序中,我希望使用
recyclerView
来显示特殊数据,为此,我希望使用
recyclerView
水平滚动显示下一个上一个数据。
例如横幅图像下方

如何使用
LayoutManager
进行此操作

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


请不要给我负面评价,请帮助我。

假设您一次只需要显示一个完整项目,两侧各显示两个部分项目。您可以使用
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);
}

假设您一次只需要显示一个完整项目,两侧显示两个部分项目。您可以使用
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);
}

为什么您不能尝试
ViewPager
@Sniffer,我想使用RecyclerView。你能帮我吗?请跟随这个链接,它对我有用。@dhananjaysingh,谢谢亲爱的,但我不想显示下一个和上一个箭头。我想要部分下一个和上一个数据为什么你不能尝试
ViewPager
@Sniffer,我想要使用RecyclerView。你能帮我吗?请跟随这个链接,它对我有用。@dhananjaysingh,谢谢亲爱的,但我不想显示下一个和上一个箭头。我想要部分下一个和上一个数据是的,亲爱的,我知道我应该在线性布局中使用水平。但是我不知道如何显示下一个和上一个数据你的意思是,你想显示部分下一个和上一个数据吗?是的,我的朋友。如上图所示。你能帮我吗?亲爱的,你在这儿吗?你能帮我吗?谢谢亲爱的,你使用int-width=recyclerView.getWidth();代码。要使用recyclerview,我应该将我的recyclerview从活动传递到适配器?是的,亲爱的,我知道我应该在线性布局中使用水平。但是我不知道如何显示下一个和上一个数据你的意思是,你想显示部分下一个和上一个数据吗?是的,我的朋友。如上图所示。你能帮我吗?亲爱的,你在这儿吗?你能帮我吗?谢谢亲爱的,你使用int-width=recyclerView.getWidth();代码。为了使用recyclerview,我应该将我的recyclerview从活动传递到适配器?