【问题标题】:List each sections vertically but show items inside it horizontal with SectionedRecyclerViewAdapter垂直列出每个部分,但使用 SectionedRecyclerViewAdapter 水平显示其中的项目
【发布时间】:2017-11-16 07:28:38
【问题描述】:

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

我已经学习了这个教程https://github.com/luizgrp/SectionedRecyclerViewAdapter 我已使用以下代码将布局管理器更改为水平:

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

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

我想要的是如下图所示

有可能吗?请帮忙!!

【问题讨论】:

    标签: sectionedrecyclerviewadapter


    【解决方案1】:

    伪代码:

    使用 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);
    

    这个blog有更多解释和代码。

    下载link 获取博客上给出的相同代码。

    【讨论】:

    • 抱歉,这是一个简单的recyclerview 对吗?我想要实现的是使用 SectionedRecyclerViewAdapter 库(github.com/luizgrp/SectionedRecyclerViewAdapter)。我们可以创建多个recyclerviews。
    • 您想要在垂直回收器视图中的水平回收器视图吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 2013-05-26
    • 1970-01-01
    • 2019-12-25
    • 2017-06-19
    • 2020-03-08
    相关资源
    最近更新 更多