Android Recyclerview предмет рядом - PullRequest
0 голосов
/ 05 июня 2018

У меня есть окно рециркуляции с элементами в нем, и его можно прокручивать вертикально.В настоящее время я достиг того, что элементы добавляются один за другим, как список.Я должен разместить их рядом.

Как на изображении ниже

Target

И мой вывод

Output

Мой код настройки просмотра в режиме утилизации:

topicAdapter = new TopicAdapter(topicList, getActivity());
        topicListView.setLayoutManager(new LinearLayoutManager(getActivity()));
        topicListView.setAdapter(topicAdapter);

и код адаптера:

public class TopicAdapter extends RecyclerView.Adapter<TopicAdapter.CategoryViewHolder> {
    private List<Topic> topicList;
    Context context;

    public TopicAdapter(List<Topic> topicList, Context context) {
        this.topicList = topicList;
        this.context = context;
    }

    @Override
    public CategoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //inflate the layout file
        View groceryProductView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_suggested_topics, parent, false);
        CategoryViewHolder holder = new CategoryViewHolder(groceryProductView);
        return holder;
    }

    @Override
    public void onBindViewHolder(CategoryViewHolder holder, final int position) {
        holder.txtview.setText(topicList.get(position).getName());
    }

    @Override
    public int getItemCount() {
        return topicList.size();
    }

    public class CategoryViewHolder extends RecyclerView.ViewHolder {
        TextView txtview;

        public CategoryViewHolder(View view) {
            super(view);
            txtview = view.findViewById(R.id.titleView);
        }
    }
}

Ответы [ 5 ]

0 голосов
/ 05 июня 2018

Использование StaggeredGridLayoutManager для просмотра переработчика

0 голосов
/ 05 июня 2018

Я могу предложить вам простое решение, но вы не можете выполнить полное требование с помощью этого кода.Вы получите бок о бок.

Замените

topicListView.setLayoutManager(new LinearLayoutManager(getActivity()));

на

topicListView.setLayoutManager(new GridLayoutManager(getActivity(), 3)); 

// 3 denotes the number of rows per column
0 голосов
/ 05 июня 2018

Я думаю, что хороший способ сделать это - использовать Material Choice Chips , вы можете узнать, как их использовать здесь .Затем вы можете использовать ChipGroup , чтобы сгруппировать их и позволить им проходить через несколько строк.

Однако, чтобы решить поднятый вопрос, вы можете использовать GridLayoutManager и затем поставьте SpanSizeLookup .

0 голосов
/ 05 июня 2018

Вы можете сделать это, используя новейший компонент дизайна Google ChipGroup В противном случае вы можете использовать Flexbox-Layout , отображая ваши теги в Grid Layout.Если вы хотите перейти на Flexbox-Layout, отметьте ответ avik

0 голосов
/ 05 июня 2018

Добавить

1002 *
...