Перечислять каждый раздел по вертикали, но показывать элементы внутри него по горизонтали с помощью SectionedRecyclerViewAdapter

То, что я хочу показать, что-то вроде в Google Play. У меня много товарной категории. поэтому мне нужно показать его по вертикали, но я хочу, чтобы пользователь мог прокручивать товар внутри каждой категории по горизонтали (влево и вправо) с помощью 2 пунктов.

Я уже следовал этому руководству https://github.com/luizgrp/SectionedRecyclerViewAdapter Я изменил макет менеджера на горизонтальный со следующим кодом:

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

но он показал все разделы и элементы по горизонтали.

то, что я хочу, это что-то вроде изображения ниже

Является ли это возможным? Пожалуйста помоги!!

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

Этот блог имеет больше объяснений и кода.

Ссылка на скачивание для того же кода приведена в блоге.

Другие вопросы по тегам