0

我想展示的内容类似于 google play 中的内容。我有很多产品类别。所以我需要垂直显示它,但我希望用户能够在每个类别中水平(左右)滚动产品,其中包含 2 个项目。

我已经按照本教程https://github.com/luizgrp/SectionedRecyclerViewAdapter 我已经使用以下代码将 layoutmanager 更改为 Horizo​​ntal:

recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false));

但它水平显示了所有部分和项目。

我想要的是如下图所示 在此处输入图像描述

可能吗?请帮忙!!

4

1 回答 1

0

伪代码:

使用 Recycler View 并将其布局设置为垂直

RecyclerView my_recycler_view = (RecyclerView) findViewById(R.id.my_recycler_view);
my_recycler_view.setHasFixedSize(true);
RecyclerViewDataAdapter adapter = new RecyclerViewDataAdapter(this, allSampleData);
my_recycler_view.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));

在 Recycler Adapter 内部膨胀布局并设置另一个适配器以在 onBindViewHolder 中填充该布局的数据。还将该布局设置为水平。

  @Override
    public ItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_item, null);
        ItemRowHolder mh = new ItemRowHolder(v);
        return mh;
    }

    @Override
    public void onBindViewHolder(ItemRowHolder itemRowHolder, int i) {

        final String sectionName = dataList.get(i).getHeaderTitle();

        ArrayList singleSectionItems = dataList.get(i).getAllItemsInSection();

        itemRowHolder.itemTitle.setText(sectionName);

        SectionListDataAdapter itemListDataAdapter = new SectionListDataAdapter(mContext, singleSectionItems);

        itemRowHolder.recycler_view_list.setHasFixedSize(true);
        itemRowHolder.recycler_view_list.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
        itemRowHolder.recycler_view_list.setAdapter(itemListDataAdapter);


        itemRowHolder.recycler_view_list.setNestedScrollingEnabled(false);

这个博客有更多的解释和代码。

博客上给出的相同代码的下载链接

于 2017-11-16T08:23:45.853 回答